Есть связанные таблицы Goods и Sizes, Brands, Parameters.
Сам процесс фильтрации реализован, т.е. выборка по товарам:
Контроллер:
$goods = Good::select('id', 'name', 'brand_id', 'price');
$goods = (new MyGoodsFilter($goods, $request))->apply();
$goods = $goods->get();
Фрагмент фильтра:
// Фильтрация по размерам
$this->builder->whereHas('sizeid', function ($query) use ($value) {
$query->Where(function ($query) use ($value) {
$sizes = explode(",", $value);
foreach ($sizes as $size) {
$query->orwhere('size_id', '=', $size);
}
});
Но в каждом разделе уже будут лишние элементы фильтра (которым нет в таблице соответствующих товаров). При каждом выборе элемента фильтра будут появляться новые не рабочие элементы.
Как лучше всего оставлять только рабочие элементы в фильтре при каждом выборе?