laravel - 如何创建具有关系的搜索系统?
问题描述
我会尽力解释。例如,我有一张带有广告的桌子,例如汽车。我有如下关系表:品牌、型号。这意味着在 adv 表中可以输入
id|make_id|model_id 1 | 23 | 33
make_id 是现代,型号 id 是 Excel 输入搜索关键字时我有搜索框
如果我输入现代
// create search model
$adv = Advertisement::query();
// status activate 64
$adv->where('user_id', Auth()->user()->id);
// make
$adv->whereHas('make', function($query) use($request) {
$query->where('name', 'like', '%' . $request->search_adv . '%');
});
dd($adv->get());
非常适合制作。但是当我做
// 创建搜索模型 $adv = Advertisement::query();
// status activate 64
$adv->Where('user_id', Auth()->user()->id);
// make
$adv->whereHas('make', function($query) use($request) {
$query->orWhere('name', 'like', '%' . $request->search_adv . '%');
});
// model
$adv->whereHas('model', function($query) use($request) {
$query->orWhere('name', 'like', '%' . $request->search_adv . '%');
});
dd($adv->get());
应该怎么做?
解决方案
// status activate 64
$adv->Where('user_id', Auth()->user()->id);
// make
$adv->whereHas('make', function($query) use($request) {
$query->where('name', 'like', '%' . $request->search_adv . '%');
});
// model
$adv->orWhereHas('model', function($query) use($request) {
$query->where('name', 'like', '%' . $request->search_adv . '%');
});
dd($adv->get());
推荐阅读
- php - How do I add an integer to an array depending on the checkbox(es) i've clicked?
- python - How to convert a 2 element(with x elements) array into a 2*x elelment array?
- matlab - MATLAB:可能存在具有相同坐标的标记时的gscatter
- javascript - 转义 Angular 模板表达式以显示在 Angular HTML 组件模板中?
- angular - 角嵌套形式数组
- html - 如何进行边界-底部过渡?
- javascript - 如何在javascript中将远程图像转换为base64
- c# - CreateErrorResponse is losing text
- r - Problem with Goodness-Of-Fit tests for objects of class kppm in spatstat version 1.61-0
- c# - 如何根据层次结构中的场景顺序对循环进行排序以 debug.log 游戏对象?