У меня есть этот код
$query->whereHas('filters',function($q) use ($filters) {
$q->where('filter_id', $filters[0]);
for($i = 1; $i < count($filters); $i++)
{
$q->orWhere('filter_id', $filters[$i]);
}
});
Проблема заключается в том, что когда он ищет один фильтр ( count($filters) == 1 )
, результат правильный, а отображаемый элемент связан с этим фильтром. Но когда я выполняю поиск по нескольким фильтрам ( count($filters) > 1 )
, Результат - это все элементы в db и его вроде не поиск
Что я могу сделать?
Я думаю, что вы можете сделать то же самое вы пытаетесь сделать с wherein
вызовом.
$query->whereHas('filters', function($q) use ($filters){
$q->whereIn('filter_id',$filters);
});