📌  相关文章
📜  获取除特定角色 laravel 角色 spatie 以外的用户 - PHP (1)

📅  最后修改于: 2023-12-03 15:27:51.941000             🧑  作者: Mango

获取除特定角色 spatie 以外的用户 - PHP

在 Laravel 中,我们可以使用 Spatie Laravel Permission 扩展包来为用户分配角色。有时候,我们需要获取除特定角色以外的用户,这可以通过以下步骤完成。

首先,我们需要使用 Spatie 提供的 Spatie\Permission\Traits\HasRoles trait。在用户模型中添加如下代码:

use Spatie\Permission\Traits\HasRoles;

class User extends Authenticatable
{
    use HasRoles;

    // ...
}

接下来,我们可以使用 whereDoesntHave 方法来检索没有给定角色的用户。下面是一个例子:

use App\Models\User;
use Spatie\Permission\Models\Role;

$role = Role::findByName('spatie');

$users = User::whereDoesntHave('roles', function ($query) use ($role) {
    $query->where('roles.id', $role->id);
})->get();

在上面的代码中,我们首先找到了名为 spatie 的角色。然后,我们使用 whereDoesntHave 方法检索没有该角色的用户。

最后,我们使用 ->get() 方法获取用户的集合对象。

以上就是如何获取除特定角色 spatie 以外的用户的方法。