Laravel委托,查询用户没有角色的地方

Laravel Entrust, query where users do not have a role

我想 return 所有没有各种关系存在和各种角色的用户。

目前,这可以正常工作:

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

我还想删除具有 'admin' 角色的用户。

到目前为止我已经尝试过:

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

但它是 return 错误:

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

如何筛选出具有特定角色的用户?

试试这个

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