Laravel 发送值和 ID 的表单操作

Laravel form action sending values and id

允许管理员更改用户或员工角色的提交表单,显示错误 Missing required parameter for [Route: updateRolePermission] [URI: admin/edit-role-permission/{id}] [Missing parameter: id]我为这个问题奋斗了很多小时,大家可以帮忙谢谢!!!!!!

<form action="{{ route('updateRolePermission'), ['id' =>$user->id] }}" method="POST">
    @csrf
    <select name="roles">
    <option value="user">User</option>
    <option value="staff">Staff</option>
    </select>
    <input type="submit">
</form>
Route::group(['prefix'=>'admin', 'middleware'=>['isAdmin','auth']], function(){
    Route::get('dashboard', [AdminController::class, 'index'])->name('admin.dashboard');
    Route::get('role-permission', [AdminController::class, 'rolePermission'])->name('admin.rolePermission');

    //it doesnt work!!!!
    Route::get('edit-role-permission/{id}', [AdminController::class, 'editRolePermission'])->name('updateRolePermission');
});
    function editRolePermission($id)
    {
        $row = DB::table('users')
                ->where('id',$id)
                ->limit(1)
                ->update(array('role' => 'fdas'));

        return redirect()->back();
    }

首先你的路由是 GET 方法,而你的表单是 POST 方法。

对于 $id,您可以通过以下方式在您的控制器中获取它:

$id = \Route::current()->parameter('id');

更改此行:

action="{{ route('updateRolePermission'), ['id' =>$user->id] }}"

对此:

action="{{ route('updateRolePermission', $user->id) }}"