为什么这个DQL查询产生二维数组?

时间:2011-09-01 16:10:08

标签: doctrine doctrine-orm

$query = $this->getEntityManager()->createQuery('
                SELECT COUNT(s) FROM MyDiaryBundle:TrainingSession s
                WHERE s.status = :completed
                AND s.user = :user')
                ->setParameter('user',$user)
                ->setParameter('completed','confirmed');
$result = $query->getResult();

结果:array(1){[0] => array(1){[1] => string(1)“0”}}

为什么嵌套数组用'1'键入?

1 个答案:

答案 0 :(得分:1)

使用$ query-> getSingleScalarResult()

回答你的问题 - 据我所知,getResult()将为实体数组提供水合,因此第一个维度包含实体列表,第二个维度是实体以及任何其他不是实体的一部分(例如COUNT(s)的结果)。

嵌套数组元素可能用'1'键入,因为您没有提供COUNT的别名,例如COUNT(s)AS sessionCount。