[英]Laravel Policies with Many-to-Many relationship
角色和權限是兩個模型,因為它們具有多對多關系,所以我有一個名為permission_role
table的中間表。 但這沒有模型。 我正在嘗試將權限附加到角色 。 但$this->authorize('create', RolePermission::class);
始終失敗並顯示錯誤"This action is unauthorized."
路線 :
Route::post('/rolepermissions/{role}/addpermission', 'RolePermissionController@store')
->name('rolepermission.store');
RolePermissionController :
public function store(StoreRolePermission $request, Role $role)
{
$this->authorize('create', RolePermission::class);
...
}
RolePermissionPolicy :
public function create(User $user)
{
if (($user->usertype == 'ADMIN') || ($user->usertype == 'SUPERADMIN'))
{
return true;
}
else
{
return false;
}
}
是因為中間表沒有關聯的模型嗎?
我有類似的情況,我正在做:
Auth:user()->can('create', RolePermission::class);
而不是授權。
我想(還沒有測試過)你也可以這樣做:
$this->authorize('create', [RolePermission::class, Auth::user()])
。 數組中的第二個參數將作為策略中唯一的參數傳遞。
我對Laravel很新,我得到了一些解決類似問題的幫助,希望這對你有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.