Задать вопрос

Как сделать динамический фильтр товаров на Laravel?

Есть связанные таблицы 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);
                }
            });


Но в каждом разделе уже будут лишние элементы фильтра (которым нет в таблице соответствующих товаров). При каждом выборе элемента фильтра будут появляться новые не рабочие элементы.
Как лучше всего оставлять только рабочие элементы в фильтре при каждом выборе?
  • Вопрос задан
  • 1306 просмотров
Подписаться 3 Средний Комментировать
Ответ пользователя Vilintritenmert К ответам на вопрос (1)
@Vilintritenmert
Выводить пользователю список параметров которые есть в таблице соответствующих товаров.

Делать запрос на основе $request-а (какие параметры пришли по ним фильтруем)
Ответ написан
Комментировать