2017-02-12 82 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