@nimfai
Full stack developer

Как сделать выборку тегов и подсчитать кол-во материалов в Laravel?

Здравствуйте!
Подскажите пожалуйста наилучшее решение для следующей задачи.
Есть список тегов (порядка 2000). Нужна на странице вывести список тегов с указанием количества статей, прикреплённых к ним используя Laravel Query Builder.
C выборкой тегов проблем никаких.
$request = DB::table('tags')->paginate(150);
А что что необходимо добавить, чтобы в результате ещё и получить количетсво материалов в таблице content, где content.tag_id равен tags.tag_id.
Спасибо!
  • Вопрос задан
  • 285 просмотров
Решения вопроса 1
@anlamas
1. Настроить отношения
Обычно для тегов работают с Many To Many или Many To Many Polymorphic Relations

2. Теперь надо писать запросы к отношениям
$tags = App\Tag::withCount('contents')->get();
Количество статей хранится в поле contents_count
Если нужно при этом отфильтровать статьи, то
$tags = App\Tag::withCount(['contents' => function ($query) {
    $query->where('status', 1);
}])->get();


Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
zvermafia
@zvermafia
WebDev
Подскажите пожалуйста наилучшее решение для следующей задачи.

Eloquent: Relationships
...используя Laravel Query Builder.

Database: Query Builder
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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