php - 关系“doesntHave”在 Laravel 中不起作用
问题描述
我需要帮助。我有个问题。在这部分代码中,关系“doesntHave”不起作用并返回用户的完整列表
$searchData = $request->searchData;
$users = User::doesntHave('roles')
->where('id','like', '%' . $searchData . '%')
->orWhere('name', 'like', '%' . $searchData . '%')
->orWhere('email', 'like', '%' . $searchData . '%')
->limit(8)
->get();
return response()->json($users);
解决方案
AND 和 OR 运算符的优先级相同,因此a AND b OR c OR d
本质上与(((a AND b) OR C) or D)
. 在您的情况下,您可能希望a AND (b OR c OR d)
实现这一点,您需要:
$searchData = $request->searchData;
$users = User::doesntHave('roles')
->where(function ($q) use ($searchData) {
$q->where('id','like', '%' . $searchData . '%')
->orWhere('name', 'like', '%' . $searchData . '%')
->orWhere('email', 'like', '%' . $searchData . '%');
})
->limit(8)
->get();
return response()->json($users);
推荐阅读
- c# - 使用 List<>.Contains 动态 Linq 到 EF
- python - 如何在第二个窗口中复制小部件
- python - How to limit the time input to only be accpetable within a timeperiod in Python
- python - 当我输入一个整数时 Python 脚本崩溃
- bash - 用于 QuantumEspresso scf 计算的 Bash 文件
- python - 在pyspark中用平均值填充缺失值
- php - 属性 [id] 不存在 laravel
- python - 在没有 y 坐标的 Matplotlib 图中添加文本
- javascript - 根据数组对象数据创建一个新数组
- date - 两个日期之间的序列,仅按指定的工作日,跳过所选的周数