簡體   English   中英

與多對多關系的Laravel政策

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM