laravel - 如何从 laravel 控制器中的 3 个(多个)表中搜索数据?
问题描述
我想进行搜索以显示输入包含扬声器名称的扬声器,并显示输入包含扬声器topicname
的扬声器
我试着做
$speaker = Speaker::where ('name','like','%'.$search.'%')->orWhere ........
我应该在andWhere
条款中做什么?
解决方案
据我了解,您想按演讲者姓名或演讲者主题名称搜索
假设您在模型之间设置了关系,这是我的代码:
$speaker = Speaker::where('name','like','%'.$search.'%')
->orWhereHas('Detail', function(Builder $query) use ($search){
$query->whereHas('Topic', function(Builder $subQuery) use ($search){
$subQuery->where('topicname', 'like','%'. $search . '%');
});
})->get();
参考:https ://laravel.com/docs/8.x/eloquent-relationships#querying-relationship-existence
推荐阅读
- javascript - jQuery单击并在一个功能中加载
- python-3.x - 无法从 OpenGL_accelerate 加载 numpy_formathandler 加速器
- spring - 值对象为 @AggregateIdentifier 和 @TargetAggregateIdentifier
- spring - Spring Cloud Contract - 字符串数组作为查询参数
- xamarin.forms - 从视图模型到另一个视图的方向
- laravel - Laravel/php 应用程序不执行更改
- angular - 如何提供资产文件夹之外的图像?
- android - BottomSheetFragment 是否需要 ViewModel?
- github - 来自分叉的拉取请求不会触发 travis ci
- c# - 计算有多少用户添加到数据库