Здравствуйте, ни как не могу понять, как через ORM реализовать получение количества объявлений в выбранной категории (включая подкатегории):
Есть категории и подкатегории, например:
Авто
-bwm
-audi
Мото
-irbis
-polaris
есть таблица
posts с объявлениями
так же есть таблица
posts_categories
вида:
post_id |
categories_id
ну и таблица с категориями
categoriesid |
name |
parent
подскажите пожалуйста как через ORM реализовать получение количества объявлений в выбранной категории (включая подкатегории)? например получить количество объявлений в категории Авто (посчитать число объявлений из подкатегории bwm и audi)
У меня есть только идея сначала получить список всех подкатегорий например так:
$categories = Categories::where('parent', '=', $id)->get();
А затем через цикл посчитать количество новостей в каждой категории, но ведь это не совсем правильно?
т.е если это сделать просто на MYSQL запросах, то должно быть что то вида:
SELECT * FROM categories WHERE parent = '1'; // получаем список дочерних категорий (например получили id 2,3,4)
далее
считаем сколько постов у дочерних элементов, например:
SELECT COUNT(*) FROM post_categories WHERE categories_id = 2;
SELECT COUNT(*) FROM post_categories WHERE categories_id = 3;
SELECT COUNT(*) FROM post_categories WHERE categories_id = 4;
и нужно сложить результат этих 3 запросов