get users of specific role laravel role spatie
$users = User::role('writer')->get();
get users of specific role laravel role spatie
$users = User::role('writer')->get();
get users other than specific role laravel role spatie
User::query()->whereHas("roles", function($q){ $q->whereNotIn("name", ["superadmin"]); })
user other than specific role laravel spatie
Add this to your user model:
public function scopeNotRole(Builder $query, $roles, $guard = null): Builder
{
if ($roles instanceof Collection) {
$roles = $roles->all();
}
if (! is_array($roles)) {
$roles = [$roles];
}
$roles = array_map(function ($role) use ($guard) {
if ($role instanceof Role) {
return $role;
}
$method = is_numeric($role) ? 'findById' : 'findByName';
$guard = $guard ?: $this->getDefaultGuardName();
return $this->getRoleClass()->{$method}($role, $guard);
}, $roles);
return $query->whereHas('roles', function ($query) use ($roles) {
$query->where(function ($query) use ($roles) {
foreach ($roles as $role) {
$query->where(config('permission.table_names.roles').'.id', '!=' , $role->id);
}
});
});
}
You can use it like this:
$users = User::notRole('Admin')->get();
$users = User::notRole(['Admin', 'Super Admin'])->get();
Copyright © 2021 Codeinu
Forgot your account's password or having trouble logging into your Account? Don't worry, we'll help you to get back your account. Enter your email address and we'll send you a recovery link to reset your password. If you are experiencing problems resetting your password contact us