如何检查用户是否在刀片视图中具有角色或权限



我正在使用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(管理)| | @permission (add_user)

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

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

或者由登录用户:

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

或:

Auth::user()->hasPermission('permission-name');

对于这种工作我们在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

注意不要忘记在提供者

中导入Gate facade

最新更新