列出不属于某个角色的用户
List users not belongs to a role
我使用 laravel spatie 包来获得用户权限。我需要列出不属于特定用户的所有用户。例如列出所有非管理员(角色)用户。
用于列出我使用的所有管理员用户
$users = App\User::role('admin');
我需要正好相反
如其 documentation 所述,您可以使用:
$users = User::role('writer')->get(); // Returns only users with the role 'writer'
角色范围可以接受字符串、\Spatie\Permission\Models\Role对象或\Illuminate\Support\Collection对象。
把你要查询的角色放在一个集合里就可以了
试试看:
return $this->users()->whereHas('roles', function ($query) {
return $query->where('name','!=', 'admin');
})->first();
您可以进行 2 次查询以获得所需的两组用户。我的意思是:
1 ) 没有任何角色的用户。
User::whereDoesntHave('roles')->count()
2 ) 用户有任何角色,但没有管理员(来自 Adam Kozlowski 的回答)
$this->users()->whereHas('roles', function ($query) {
$query->where('name','!=', 'admin');
})->first();
我使用 laravel spatie 包来获得用户权限。我需要列出不属于特定用户的所有用户。例如列出所有非管理员(角色)用户。
用于列出我使用的所有管理员用户
$users = App\User::role('admin');
我需要正好相反
如其 documentation 所述,您可以使用:
$users = User::role('writer')->get(); // Returns only users with the role 'writer'
角色范围可以接受字符串、\Spatie\Permission\Models\Role对象或\Illuminate\Support\Collection对象。
把你要查询的角色放在一个集合里就可以了
试试看:
return $this->users()->whereHas('roles', function ($query) {
return $query->where('name','!=', 'admin');
})->first();
您可以进行 2 次查询以获得所需的两组用户。我的意思是:
1 ) 没有任何角色的用户。
User::whereDoesntHave('roles')->count()
2 ) 用户有任何角色,但没有管理员(来自 Adam Kozlowski 的回答)
$this->users()->whereHas('roles', function ($query) {
$query->where('name','!=', 'admin');
})->first();