php - 如何从 laravel 中的多个表中搜索?
问题描述
如何使用 laravel eloquent 从多个表中搜索。以下是我的查询。
$data= User::where('id',$search_str)
->orWhere('name', 'LIKE', "%{$search_str}%")
->with('usersecond:id,name,email')->get();
如果我搜索一些东西,我会从用户表中得到结果。如何在此查询中从 usersecond 表中获取结果?
解决方案
使用whereHas()
功能
$data = User::where('id', $search_str)
->orWhere('name', 'LIKE', "%{$search_str}%")
->with('usersecond:id,name,email')
->orWhereHas('usersecond', function ($q) use ($search_str) {
$q->where('name', 'LIKE', "%{$search_str}%");
})->get();
参考链接https://laravel.com/docs/7.x/eloquent-relationships#querying-relationship-existence
推荐阅读
- video - 使用ffmpeg下载多个文件,每个文件保留一个流(根据默认流选择),然后将它们混合成单个文件?
- python-3.x - 与 shell 交互并在 Jupyter 笔记本中输入标准输入值
- angular - 在 v12 角度材料中,如何从任何 sass 文件中的自定义主题中获取颜色
- google-chrome-devtools - 如何在客户端实现 ChromeDevtoolsProtocol - CSS.getMatchedStylesForNode
- java - 在 IBM JDK 上使用 SunJCE 提供程序加载 JCKES 密钥库
- logging - 芹菜写任务回溯到日志
- python-3.x - 在 virtualenv 中为不同的 python 版本安装 Psycopg2
- reactjs - 如何在chartjs中更改两个甜甜圈图的厚度
- python - 合并来自两个数据帧的数据进行训练
- bash - 将日期时间格式从 DD-MM-YYYY HH:MM 转换为 DD/MM/YYYY HH:MM