@nicolaa

Как вывести категории в которых есть товар?

Есть категории со вложенность, при открытии основной категории, нужно вывести только те под категории, в которых находится товар

Пример таблиц категорий

id | parent_id | title
1 | 0 | Запчасти
2 | 1 | Кузовные запчасти
3 | 2 | Бампер
4 | 2 | Зеркала

Пример таблицы товара

id | category_id | title
1 | 3 | Новый бампер
2 | 3 | Черный бампер

Получается, при переходе в категорию - `Запчасти` нам открывается категория `Кузовные запчасти` и при переходи в нее, нам открывается только одна категория `Бампер`, т.к. в категории `Зеркала` нет товаров.
В голове пока только 1 вариант, это каждый раз при открытии основной категории, перебирать все дочерние и для каждой делать запрос на наличие товаров с данным id под категории `(Prod::where('category_id', id)->count())`
По сути это будет работать, но что делать, если будет вложенность категорий больше, а нужно узнать на 1 уровне или если товаров будет много. Может есть другие варианты?
  • Вопрос задан
  • 151 просмотр
Пригласить эксперта
Ответы на вопрос 1
Eridani
@Eridani
Мимо проходил
Один раз сформировать рекурсивный массив категорий с JOIN'ом, прижойнить к каждой категории ключ со значением кол-ва товаров, или же тру\фалс. Или же еще на этапе формирования просто в массив эти категории не добавлять
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы