如何使用多个值进行搜索?
$searchWords = explode(' ', Input::get('search'));
然后我得到了一系列用于搜索的单词。
我怎样才能传递它:
$pages = Page::where('content', 'LIKE', '%'.$singleWord.'%')->distinct()->get();
一个循环无法工作,然后它总是覆盖$ pages;然后它始终保持最新的搜索:
foreach($searchWords as $word){
$pages = Page::where('content', 'LIKE', '%'.$word.'%')->distinct()->get();
}
答案 0 :(得分:8)
循环是解决方案,但您只需添加where条件而不执行查询
$pages = Page::query();
foreach($searchWords as $word){
$pages->orWhere('content', 'LIKE', '%'.$word.'%');
}
$pages = $pages->distinct()->get();
答案 1 :(得分:2)
我会为你编码:
$pages = Page->where(function($query) use($word){
foreach($searchWords as $word){
$query->orWhere('content', 'LIKE', '%'.$word.'%');
}
})->get();
你可以尝试一下,我希望这会有所帮助:)