указать ключевые значения для возврата $ query-> fetchArray ()? - PullRequest
1 голос
/ 21 июля 2011

Используя 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.

Я заметил в документации Доктрины, что оба fetchArray() имеют параметры, которые вы можете передавать им, но это ничего не говорит о том, что это за параметры ...

public array fetchArray(string params)

http://www.doctrine -project.org / API / ОРМ / 1.2 / учение / doctrine_query.html # fetchArray ()

Кроме того, я, очевидно, могу просто заново заполнить новый массив предпочтительными комбинациями ключ / значение, но я пытаюсь избежать дополнительной обработки.

1 Ответ

2 голосов
/ 21 июля 2011

Проверьте ключевое слово INDEXBY DQL.

Попробуйте что-то вроде:

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