У меня есть следующий оператор DQL, использующий построитель запросов Doctrine:
Как вы видите, я возвращаю все сообщения и их комментарии:
public function getAllPosts(User $user){
$qb = $this->createQueryBuilder('p');
$qb->select('p, postPhotos,postVideos, comments, commentUser, commentUserPhoto, replyComments, commentReplyUser, commentReplyUserPhoto, postTier,creator,creatorPhoto,creatorTiers,creatorSubscriptions')
->leftJoin('p.photos', 'postPhotos')
->leftJoin('p.videos', 'postVideos')
->leftJoin('p.comments', 'comments')
->leftJoin('comments.user', 'commentUser')
->leftJoin('commentUser.photos', 'commentUserPhoto', 'WITH', 'commentUserPhoto.type = :profileType')
->leftJoin('comments.children', 'replyComments')
Я уже пытался добавить
->addSelect("COUNT(p.comments) as countComments")
И я просто получаю сообщение об ошибке: "countComments 'не указывает на класс"
Поэтому я посмотрел другие ссылки, например, такие: https://symfonycasts.com/screencast/doctrine-queries/select-sum
Но это не дает пример того, как включить счетчик в результаты запроса DQL.
Нужно ли мне просто создать свою собственную функцию подсчета в репозитории комментариев и выполнить цикл по исходному набору данных, вызывая его один раз для каждого сообщения?