我正在使用 Laravel 8 并且我使用 Laratrust 包來處理角色和權限
i 使用以下指令在刀片視圖中檢查角色或權限
@permission('add_user')
<a href="route({{'add_user')}}">create new user </a>
@endpermission
@role('admin')
<a href="route({{'add_user')}}">create new user </a>
@endrole
我的問題是有什么方法可以同時檢查角色和權限
就像是
@role('admin') || @permission('add_user')
uj5u.com熱心網友回復:
您可以在視圖中檢查用戶是否有權限:
$user->hasRole(['owner', 'admin']); // this returns true
或者由登錄的用戶:
Auth::user()->hasRole('role-name');
或這個:
Auth::user()->hasPermission('permission-name');
uj5u.com熱心網友回復:
對于這種作業,我們在 laravel 中有 gate,你可以簡單地在 AuthServiceProvider.php 中注冊一個 gate
Gate::define('owner',function(User $user){
if($user->hasRole == "owner" && $user->hasPermission == "permission-name"){
return true;
}
return false;
})
然后在刀片內部,您可以使用@can 運算子進行檢查
@can('owner')
"write something which visible to owner"
@endcan
注意不要忘記在 provider 中匯入 Gate門面
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/323012.html
上一篇:Laravel:如何從具有不同長度的兩個陣列創建新陣列
下一篇:如何在刀片視圖中檢查中間件
