使用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');