如何搜索具有Spatie Laravel权限两个角色的用户?

时间:2020-07-22 14:18:19

标签: laravel spatie

我正在与Laravel合作,目前我只关注权限,我需要验证的是,如果用户具有卖方和管理员的角色,他们将列出所有卖方,如果没有,则列出所有卖方一个项目。

我试图创建自己的函数,但我总是陷入True,只允许我不再验证1个角色<​​/ p>

public function isSeller(){

  foreach (Auth::user()->getRoleNames() as $role) {
     if ($role == 'vendedor') {
          return true;
     } else {
          return false;
     }
  }
}

如果在上一个查询中,如果我输入&& $ role =='admin',则即使用户没有该角色,它也将始终返回true。

1 个答案:

答案 0 :(得分:2)

您可以直接如下所示进行检查,如果用户具有卖方或管理员角色,它将返回true

Auth::user()->hasRole('seller','admin')

如果要检查用户是否同时具有这两个角色,

Auth::user()->hasAllRoles('seller','admin')