如何建立具有关系的搜索系统?

时间:2019-06-03 13:57:27

标签: laravel eloquent

我会尽力解释。例如,我的桌子上有汽车等副词。我有类似的关系表:制造,模型。这意味着在adv表中可以输入

id | make_id | model_id 1 | 23 | 33

make_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());

应该怎么做?

1 个答案:

答案 0 :(得分:2)

// 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());