php - Laravel Eloquent 在相关表中搜索

标签 php laravel eloquent

我有一个具有多个角色的用户列表,我希望我的 ajax 搜索方法可以在这个结果集中搜索(user1 具有用户角色和管理员角色)。
所以我写了这样的请求:

$usersData = User::where('name', 'like', $queryString . '%')
        ->orWhere('email', 'like', $queryString . '%')
        ->orWhere('username', 'like', $queryString . '%')
        ->when($limit > 0 || $offset > 0, function ($usersData) use ($limit, $offset) {
            $usersData->take($limit)->skip($offset);
        })
        ->with('roles:name')->whereHas('roles',function($query) use($queryString){
            $query->where('roles.name','like',$queryString.'%');
        })
        ->get();

但它不起作用你知道问题是什么吗?
谢谢。

最佳答案

使用 orWhereHas()而不是 whereHas() :

->orWhereHas('roles', function($query) use($queryString){
    $query->where('name', 'like', '%' . $queryString. '%');
})

关于php - Laravel Eloquent 在相关表中搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48406444/

相关文章:

php - 如何在laravel项目中添加OwlCarousel?

laravel - Laravel 中通过多对多关系模型对 eloquent 模型进行排序

javascript - 从 laravel 中的 javascript 调用详细信息

php - 更新附加/分离 Eloquent 关系的时间戳

database - Laravel - 数据库 [bootstrap] 未配置

php - Elasticsearch-ICU排序规则关键字字段-挪威语- Elasticsearch 在排序时被视为å

PHP:检索两个最新的 mySQL 表条目并将每个条目存储在不同的变量中

php - 根据所选有效期,在 1 个月或 3 个月后删除行

php - 密码问题中的符号 - php

php - Laravel (OOP),模型特定值数组(例如用户头衔)