Как выбрать из Drupal с псевдонимом

Я хочу получить 1 столбец из таблицы в Drupal как 2 псевдонима. Примерно так, но с помощью методов запросов Drupal.

SELECT name AS label, name AS value FROM node WHERE 1

Этот код Drupal не устанавливает правильный псевдоним:

$query = db_select('node', 'node');
$query->fields('node', array('label' => 'name','value' => 'name'));

Возвращает что-то вроде: [name] => Science [node_name] => Science

Есть ли способ установить псевдоним?

1 ответ

Решение

Метод 'fields' не позволяет вам устанавливать псевдонимы. Если вы посмотрите на документы, вторым аргументом для полей является индексированный массив, поэтому только числа.

http://api.drupal.org/api/drupal/includes--database--select.inc/function/SelectQuery::fields/7

Если вам нужны псевдонимы, вам нужно использовать addField.

http://api.drupal.org/api/drupal/includes--database--select.inc/function/SelectQuery::addField/7

$query = db_select('node', 'n');

$query->addField('n', 'name', 'label');
$query->addField('n', 'name', 'value');
Другие вопросы по тегам