1

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

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

4

1 回答 1

2

查看INDEXBY DQL 关键字。

尝试类似:

<?php
$query = Doctrine_Query::create()
           ->select('p.id,p.name')
           ->from('people p INDEXBY p.id');
于 2011-07-21T17:00:50.110 回答