2011-07-21 56 views
1

使用學說,我有點做了這樣的查詢:

$query = Doctrine_Query::create()->select('id,name')->from('people'); 
return $query->fetchArray(); 

它返回一個類似數組的下數組的對象:

array(3) { 
    [0]=> 
    array(4) { 
    ["id"]=> 
    string(1) "34" 
    ["name"]=> 
    string(7) "John" 
    } 
    [1]=> 
    array(4) { 
    ["id"]=> 
    string(1) "156" 
    ["name"]=> 
    string(6) "Bob" 
    } 
    [2]=> 
    array(4) { 
    ["id"]=> 
    string(1) "27" 
    ["name"]=> 
    string(7) "Alex" 
    } 
} 

聲明數組的鍵是如何從0計數,1,2等?我的問題:是否可以指定你想要的關鍵值來自哪裏?例如,我希望上述案例中的關鍵值分別爲34,156和27.

我注意到Doctrine doc中的fetchArray()都有參數可供您使用,但它沒有提供任何內容什麼這些參數是...

public array fetchArray(string params) 

http://www.doctrine-project.org/api/orm/1.2/doctrine/doctrine_query.html#fetchArray()

另外,我可以明明只是重新填充的首選鍵/值組合一個新的數組,但我想,以避免額外的處理需要。

回答

2

查看INDEXBY DQL關鍵字。

嘗試類似:

<?php 
$query = Doctrine_Query::create() 
      ->select('p.id,p.name') 
      ->from('people p INDEXBY p.id'); 
+0

該訣竅。謝謝!我還發現了'Doctrine_Collection-> setColumnKey()'方法,但它似乎沒有做任何事情。 –