Spatie Laravel 权限 - 如何获取具有一个角色或另一个角色的用户

Dav*_*ghi 2 laravel laravel-permission

我试图弄清楚是否有一种简单的方法来获取拥有一个角色或另一个角色的所有用户。
在 Spatie Laravel Permissions 的官方文档上,我找不到这个。

我正在尝试这样做,但我得到了所有用户。

User::role(['Individual', 'Organisation', 'Venue'])->get();
Run Code Online (Sandbox Code Playgroud)

我也在尝试这样的:

User::whereHas("roles", function($q) {
                $q->orWhere(function ($query) {
                    $query->where("name", "Individual")
                        ->where("name", "Venue")
                        ->where("name", "Organisation");
                });
            })->get();
Run Code Online (Sandbox Code Playgroud)

在 Db 角色表中,我有:

在此输入图像描述

Kam*_*aul 7

您可以尝试whereIn()Roles () 参考链接https://laravel.com/docs/8.x/queries#additional-where-clauses

User::with("roles")->whereHas("roles", function($q) {
    $q->whereIn("name", ["Individual","Venue",'Organisation']);
})->get();
Run Code Online (Sandbox Code Playgroud)

尝试id更好的搜索,因为它是主键

User::with("roles")->whereHas("roles", function($q) {
    $q->whereIn("id", [6,7,8]);
})->get();
Run Code Online (Sandbox Code Playgroud)

注意这里name应该与数据库中的角色名称字符串完全匹配