-1

我正在使用 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

我的问题是有什么方法可以同时检查角色和权限

就像是

@角色('管理员') || @permission('add_user')

4

2 回答 2

1

对于这种工作,我们在 laravel 中有门,您可以简单地在 AuthServiceProvider.php 中注册一个门

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

注意不要忘记在提供程序中导入 Gate 门面

于 2021-10-18T18:22:09.637 回答
0

您可以检查用户是否在视图中具有权限:

$user->hasRole(['owner', 'admin']);  // this returns true

或由登录的用户:

Auth::user()->hasRole('role-name');

或这个:

Auth::user()->hasPermission('permission-name');
于 2021-10-18T17:58:47.370 回答