列表用户不属于角色

时间:2018-04-23 09:36:45

标签: laravel laravel-5.5 spatie

我使用laravel spatie包来获取用户权限。我需要列出不属于特定用户的所有用户。例如,列出所有非管理员(角色)用户。

列出我用过的所有管理员用户

$users = App\User::role('admin');

我需要与

相反

3 个答案:

答案 0 :(得分:2)

您可以进行2个查询以获取所需的两组用户。我的意思是:

1)没有任何角色的用户。

cdk --app path/to/cdk.out deploy ExampleStack --parameters "ExampleStack:SomeVar=SomeValue"

2)用户具有任何角色,但没有管理员角色(来自Adam Kozlowski回答)

User::whereDoesntHave('roles')->count()

答案 1 :(得分:1)

尝试这种方式:

public class Device
{
    public long Id { get; set; }
    public string Uid { get; set; }
    public Type Type { get; set; }
    public Status Status { get; set; }
    public virtual List<Ping> Pings { get; set; } //Newly added
}

答案 2 :(得分:0)

正如documentation所述,您可以使用:

$users = User::role('writer')->get(); // Returns only users with the role 'writer'

角色作用域可以接受字符串,\ Spatie \ Permission \ Models \ Role对象或\ Illuminate \ Support \ Collection对象。

只需将要查询的角色放入集合中即可。