Laravel Entrust,查询用户没有角色的位置

时间:2017-02-12 11:11:30

标签: php laravel laravel-5 eloquent 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')

但它正在返回错误:

  

调用未定义的方法Illuminate \ Database \ Query \ Builder :: hasRole()

如何过滤掉具有特定角色的用户?

1 个答案:

答案 0 :(得分:1)

试试这个

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