php - Laravel Entrust,查询用户没有角色的地方

标签 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')

但它返回错误:

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')

关于php - Laravel Entrust,查询用户没有角色的地方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42186866/

相关文章:

Php crypt() 函数返回 "weird results"

php - 我使用phpinfo()获得的_ENV ["HTTP_X_VARNISH"]值是什么意思

Laravel session 在 View 之间不工作

php - 在 eloquent 中查找用户的拍卖

PHP 创建表然后允许用户单击按钮从表中获取信息

php - 电子邮件的 Laravel 验证规则

php - 向 Laravel 5.4 添加子类别

php - 具有未知数据库的家园的 Laravel 5

php - 我无法在 Laravel 中使用事务

PHP MYSQL 使用表中的数组插入多个数据