指定返回$ query-> fetchArray()的键值?

时间:2011-07-21 15:37:57

标签: php sql doctrine doctrine-1.2 dql

使用Doctrine,我正在做一个像这样的查询:

$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文档中注意到fetchArray()都有参数可以提供它们,但它没有说明这些参数是什么......

public array fetchArray(string params)

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

此外,我显然可以使用首选键/值组合重新填充新数组,但我正在尝试避免所需的额外处理。

1 个答案:

答案 0 :(得分:2)

查看INDEXBY DQL关键字。

尝试类似:

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