Я хочу отфильтровать товары по категориям (отношения много-много). В основном пользователь выбирает, какие категории показывать. Категории, которые я хочу отфильтровать, находятся в $request->keywords
. Вот что я попробовал:
$products = Product::all();
foreach($request->keywords as $keyword) {
$products = Product::whereHas('categories', function($q) use ($keyword){
$q->where('title', '=', $keyword);
})->get();
}
return response()->json($products);
Проблема в том, что сюда не попадают все категории, только товары с последней категорией в массиве. Я предполагаю на этом этапе: $q->where('title', '=', $keyword);
, $q
не сохраняет результаты последней итерации цикла, но всегда удаляет результаты последнего цикла.
Я также попробовал то же самое с $q->orWhere('title', '=', $keyword);
, но это на самом деле не дает никаких результатов.
Спасибо за вашу помощь!