2017-02-12 2 views
0

Я хотел бы вернуть всех пользователей, у которых нет разных отношений, и разных ролей.Laravel Entrust, запрос, где пользователи не имеют роли

На данный момент, это работает правильно:

User::doesntHave('trusts') 
     ->doesntHave('sites') 
     ->pluck('email', 'name', 'id'); 

То, что я хотел бы, чтобы также удалить пользователей, которые имеют роль «администратора».

До сих пор я пытался:

User::doesntHave('trusts') 
     ->doesntHave('sites') 
     ->whereDoesntHave('roles', function ($query) { 
      $query->hasRole(['admin']); 
     }) 
     ->pluck('email', 'name', 'id') 

Но это возвращение ошибки:

Call to undefined method Illuminate\Database\Query\Builder::hasRole()

Как я могу отфильтровать пользователей, которые имеют определенную роль?

ответ

1

Попробуйте это

User::doesntHave('trusts') 
     ->doesntHave('sites') 
     ->whereDoesntHave('roles', function ($query) { 
      $query->where('name', 'admin'); 
     }) 
     ->pluck('email', 'name', 'id') 
+0

отлично работает! Благодарю вас, @Paras. – Ben

+0

Рад, что это помогло, ура! – Paras

Смежные вопросы