相关的 Doctrine 查询构建器计数

Doctrine Query builder count of related

假设我有一个具有双向关系的典型论坛设置(posts、评论、用户)

来自我的 post 存储库的片段

Builder('post')
            ->innerJoin('post.user', 'user')
            ->addSelect('user')
            //->innerJoin('post.comment', 'comment')
            ->setMaxResults(25)

这就是我的。我将结果传递给 Symfony 3 中的 twig。我可以使用 post.user 和其他相关的 post 字段。

我需要能够获得总数 replies/comments 和最近评论的日期。

我可以在 SQL 中完成,但我正在努力使用查询生成器。 我不反对只使用 sql/dql,但如果我总是回退到 sql,我将永远无法正确掌握构建器。

因为我是个新手,所以即使 google 指点我可能会有所帮助,因为我的 google fu 让我失望了。

试试这个方法:

$count = $this->createQueryBuilder('p')
            ->join('p.comments', 'c')
            ->select('count(c.id)')
            ->getQuery()
            ->getSingleScalarResult();

原来这不是查询生成器的用例。我最终写了 dql 来完成它。