Я пытаюсь создать простой поисковый запрос в БД с несколькими условиями.
Я бы хотел искать в БД сообщения, проверяя теги , прикрепленные к сообщениям, и проверять поиск слов в сообщениях title .
До сих пор я сделал запрос, который проверяет несколько тегов для сообщений, но сейчас я борюсь, как проверить несколько слов в заголовке сообщения.
$search = $request['search'];
$searchArr = explode(' ',$request['search']);
$searchTitle = [];
foreach ($searchArr as $search){
$searchTitle[] = ['title','like', "%$search%"];
}
echo Post::with(['allTags'])->whereHas('allTags', function($query) use ($searchArr) {
for ($i=0; $i < count($searchArr); $i++) {
if($i==0) {
$query->Where('name', $searchArr[$i]);
}else{
$query->orWhere('name', $searchArr[$i]);
}
}
})->where(['published'=>1])->orWhere([['title','like', "%$search%"],['published','=','1']])->get();
Как видите, я использую цикл for для проверки нескольких тегов, но не могу найти способ сделать это в этой части кода ->orWhere([['title','like', "%$search%"],['published','=','1']])->get();
Может кто-нибудь сказать мне, как это сделать?
Спасибо.