Общее количество отношений Laravel

У меня есть модель Category и модель Description.

При отображении моих категорий в списке я также хочу включить общее количество связанных описаний для всех категорий, но без необходимости загружать все описания.

Использование withCount работает с каждым отдельным объектом категории:

auth()->user()->categories()->withCount('descriptions')->get()

Таким образом, приведенное выше возвращает все категории и добавляет значение descriptions_count в объект, чего я не хочу.

Мне просто нужно одно общее количество описаний для всех категорий. Есть какой-нибудь простой способ добиться этого без необходимости загружать сами описания?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
2
0
84
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я думаю, что вам нужен запрос с whereHas():

Description::whereHas('category', function ($query) {
    $query->where('user_id', \Auth::id());
})->count();

Спасибо, работает, всегда забываю о whereHas. И только сейчас я понял, что мог просто подсчитать количество всех активных описаний для пользователя, поскольку они в любом случае всегда связаны с категорией. Дох :)

Hardist 24.06.2018 20:58

Да, вы, вероятно, могли бы иметь отношение hasManyThrough к вашей модели пользователя для всех описаний через категории. Таким образом, вы получите тот же результат еще короче.

Namoshek 24.06.2018 20:59

Другие вопросы по теме