[英]how to check if user has role or permission in blade laravel
我正在使用 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')
您可以在视图中检查用户是否有权限:
$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
注意不要忘记在 provider 中导入 Gate门面
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.