Ответы пользователя по тегу Symfony
  • Doctrine2. Как выбрать и гидрировать связанные коллекции?

    @novrm
    В репозитории сущности Category создаете метод типа getCategory, где создаете подобный запрос.
    Вот только сортировка и количество разных под-коллекций одним запросом не получится.
    Как вариант - потом делать пагинацию и фильтрацию полученного результата.

    public function getCategory()
    {
            $queryBuilder = $this->getEntityManager()->createQueryBuilder();
    
            $queryBuilder
            ->select('category')->from($this->getClassName(), 'category')
            ->addSelect('c_categoryHasPosts')->leftJoin('category.categoryHasPosts', 'c_categoryHasPosts')
                ->addSelect('c_cHasP_post')->leftJoin('c_categoryHasPosts.post', 'c_cHasP_post')
                    ->addSelect('c_cHasP_p_postHasComments')->leftJoin('c_cHasP_post.postHasComments', 'c_cHasP_p_postHasComments')
                        ->addSelect('c_cHasP_p_pHasC_comment')->leftJoin('c_cHasP_p_postHasComments.comment', 'c_cHasP_p_pHasC_comment')
            ->setParameter('categoryId', 1)
            ->setParameter('postId', 1)
            ->andWhere('c_cHasP_post.category_id = :categoryId')
            ->orWhere('c_cHasP_p_pHasC_comment.post_id = :postId')
            
            return $queryBuilder->getQuery()->getResult();
    }
    Ответ написан