📅  最后修改于: 2023-12-03 15:27:51.941000             🧑  作者: Mango
在 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 以外的用户的方法。