我想使用 spatie laravel 授予角色权限。我无法编辑我的角色,因为错误: 路由角色不支持 PATCH 方法。支持的方法:GET、HEAD、POST。
我的代码:
控制器:
public function edit(string $id)
{
$role = Role::find($id);
$permission = Permission::get();
$rolePermissions = DB::table("role_has_permissions")->where("role_has_permissions.role_id",$id)
->pluck('role_has_permissions.permission_id','role_has_permissions.permission_id')
->all();
return view('roles.edit',compact('role','permission','rolePermissions'));
}
public function update(Request $request, string $id)
{
$this->validate($request, [
'name' => 'required',
'permission' => 'required',
]);
$role = Role::find($id);
$role->name = $request->input('name');
$role->save();
$role->syncPermissions($request->input('permission'));
return redirect()->route('roles.index')
->with('success','Role updated successfully');
}
我的刀片:
@can('role-edit')
<a class="btn btn-primary" href="{{ route('roles.edit',$role->id) }}">Edit</a>
@endcan
路线:
Route::group(['middleware' => ['auth']], function() {
Route::resource('admin', adminController::class);
Route::resource('produk', produkController::class);
Route::resource('roles', roleController::class);
});
<form action="{{ route('roles.update', $role->id) }}" method="POST">
@csrf
@method('PUT') <!-- Add this line to use PUT/PATCH method -->
<!-- Your form fields and content here -->
</form>