Как выбрать из 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');