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


specify key values for return $query->fetchArray()?

使用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 ()

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

查看INDEXBY DQL关键字

试试这样写:

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