我有一个具有多个角色的用户列表,我希望我的 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/