我正在執行角色和權限,管理員可以更改user為的操作staff。我能夠發送id到editRolePermission函式,但角色值。
function editRolePermission($id, "role value here")
{
$row = DB::table('users')
->where('id',$id)
->limit(1)
->update(array('role' => ''));
return redirect()->back();
}
<form action="{{ route('updateRolePermission', $user->id) }}" method="POST">
@method('PATCH')
@csrf
<select name="roles">
<option name ="user" value="user">User</option>
<option name= "staff" value="staff">Staff</option>
</select>
<input type="submit" onchange="this.form.submit()">
</form>
Route::patch('edit-role-permission/{id}', [AdminController::class, 'editRolePermission'])->name('updateRolePermission');
uj5u.com熱心網友回復:
以下應該做你想做的。這是路線 - 注意我已經換{id}了{user}- 這是我們需要編輯角色的用戶的 ID:
Route::post("/edit-role-permission/{user}", [AdminController::class, "editRolePermission"]);
如何在您的表單中實作路由:
@if(session()->has("message"))
{{ session("message") }}
@endif
<form action="/edit-role-permission/{{ $user->id }}" method="POST">
@csrf
<select name="roles">
<!-- ... options ... -->
</select>
<!-- submit button -->
</form>
感謝 Laravel 的魔法,將用戶 ID 作為第二個引數傳遞允許我們訪問用戶模型,因此我們可以輕松地更新用戶,并且代碼更少。我們可以使用請求來獲取任何發布的值,在本例$request->roles中指的是名為 的輸入roles:
public function editRolePermission(Request $request, \App\Models\User $user)
{
$user->update(["role" => $request->roles]);
$user->save();
return redirect()->back()->with("message", "User role updated successfully");
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/367769.html
下一篇:我下載了bootstrap5和jquery3.6,問題是當我嵌入它們時,下拉按鈕不起作用我的代碼中是否缺少任何內容?
