这是我的场景:我将用户实体与Post实体关联1-n . 现在我想列出按特定条件排序的指定用户 - 其中一个是用户的帖子编号 . 在SQL中它将是这样的(它适用于我的数据库):

SELECT user.*, COUNT(post.id) AS posts 
FROM user LEFT JOIN post ON user.id = post.author_id 
GROUP BY user.id ORDER BY posts DESC

我的QueryBuilder(片段):

$query->leftJoin('u.'.$sort, 'p')
      ->select('u, count(p.id) as '.$sort)
      ->groupBy('u.id')
      ->orderBy($sort, 'DESC');

变量$ sort接受指定的排序条件,例如我的方案中的“posts” . 然后,$ query-> getQuery()由我的方法返回到控制器并由paginator使用(在添加新的排序条件之前,如上所述) . 从逻辑的角度来看,这应该有效 . 但是,Symfony引发一个异常“Key”id“对于带有键的数组”0,帖子“不存在” . 在我看来,特别是在这个地方:

<a href="{{ path('user', {'user': user.id}) }}">

我的问题是,如何正确构建这个QueryBuilder?如果需要显示其他代码,请告诉我 . 谢谢 .