Doctrine 最好使用DQL获取列计数或获取集合然后计数?

Doctrine 最好使用DQL获取列计数或获取集合然后计数?,doctrine,doctrine-orm,dql,Doctrine,Doctrine Orm,Dql,我很确定DQL将是一条出路,但我想知道我使用的是Doctrine 2,它是否有返回行计数的方法。我不会使用行本身,我只需要计数。我是Doctrine2的新手,但看起来您可以简单地执行以下操作: $query = $em->createQuery('SELECT COUNT(u.id) FROM Entities\User u'); $count = $query->getSingleScalarResult(); 源(使用Agregate函数): 允许的聚合函数:这里是关于在DQL

我很确定DQL将是一条出路,但我想知道我使用的是Doctrine 2,它是否有返回行计数的方法。我不会使用行本身,我只需要计数。

我是Doctrine2的新手,但看起来您可以简单地执行以下操作:

$query = $em->createQuery('SELECT COUNT(u.id) FROM Entities\User u');
$count = $query->getSingleScalarResult();
源(使用Agregate函数):


允许的聚合函数:

这里是关于在DQL中使用聚合函数的另一个有趣的观点


也许您可以避免创建特定的查询来获取聚合值。在这种情况下,聚合字段是一个很好的选择。

对我有效的语法是
$em->createQuery('SELECT COUNT(u.id)FROM MyBundle:User u')。顺便说一下,在Rails中,同样的事情也可以通过
User.count
完成。在Django中,
User.objects.count
@jasonswitt您使用了Symfony框架为您定义的别名。除非您自己定义别名,否则它在Symfony之外不起作用