2017-02-21 23 views
1

我有一個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的,C的,涉及到A·B的數量,以及最新的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)) 
    ... 

爲什麼會發生這種偏移發生,是有辦法避免這種情況?

回答

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) 

你可以驗證在下一行做轉儲嗎? 致以問候

+0

感謝您的審查,我編輯 – ste

+0

我已經認爲問題在於保溼,但你的建議是另一種方式比我的問題。我會編輯我的問題的細節。 –

相關問題