【发布时间】:2022-01-05 02:11:35
【问题描述】:
允许管理员更改用户或员工角色的提交表单,错误显示 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方法。 -
Route::get(...应该是Route::post(... -
谢谢!!,新问题,现在,我可以发送 id,但是角色。
-
还有一个错字:
route('updateRolePermission'), ['id' =>$user->id]应该是route('updateRolePermission', ['id' =>$user->id])。投票结束这是一个错字(GET/POST 和路由错字) -
问题解决后请勿更改。如果您还有其他问题,请发布新问题。我回滚了你的更新。如果您更改它,以前的 cmets/answers 对未来的访问者都没有任何意义。如果它是帮助您解决问题的特定答案,请接受该答案