Doctrine Query:Result创建带索引偏移量的数组

时间:2017-02-21 10:14:24

标签: php arrays symfony doctrine-orm

我有一个DQL字符串:

SELECT DISTINCT a,
       b,
       (
           SELECT COUNT(c)
           FROM ..\Entity\EntityC c
           WHERE c.b = b
       ),
       (
           SELECT MAX(c2.date)
           FROM ..\Entity\EntityC c2
           WHERE c2.b = b
       )
 FROM ..\Entity\EntityA a
 JOIN a.b b
 ...

我想检索一些与a.b相关的c的计数,以及最新c的日期。 我的代码生成了我想要的结果,但结果数组的索引中有一个偏移量:

array(size = [rows])
  0 => array (size = 3)
         0 => Entity(a)
         1 => int(COUNT(c))
         3 => date(MAX(c2.date))
  1 => array (size = 3)
         0 => Entity(a)
         1 => int(COUNT(c))
         3 => date(MAX(c2.date))
  ...

为什么会发生这种偏移,有没有办法防止这种情况发生?

1 个答案:

答案 0 :(得分:2)

也许这与此有关 “如果您获取FROM子句中列出的多个实体,那么水合作用将返回迭代不同顶级实体的行。” (来自http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/dql-doctrine-query-language.html#fetching-multiple-from-entities

$dql = "SELECT u, g FROM User u, Group g";

array
     [0] => Object (User)
     [1] => Object (Group)
     [2] => Object (User)
     [3] => Object (Group)

你能验证在下一行做转储吗? 最好的问候