2011-09-04 23 views
10

Chcę uzyskać 1 kolumnę z tabeli w Drupalu jako 2 aliasy. Coś takiego, ale z metodami zapytań Drupal .:Jak wybrać z Drupala z pseudonimem

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

Ten kod Drupal nie ustawia właściwą Alias:

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

zwraca coś takiego: [name] => Science [node_name] => Science

Czy istnieje jakiś sposób, aby ustawić alias?

Odpowiedz

31

Metoda "pól" nie pozwala na ustawienie aliasów. Jeśli spojrzysz na dokumenty, drugim argumentem dla pól jest tablica indeksowana, a więc tylko liczby.

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

Jeśli potrzebujesz aliasów, to trzeba użyć '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'); 
+0

dzięki. Próbowałem przeszukać dokumentację, ale albo dokument jest źle skonstruowany, albo google nie indeksuje. –

+0

Zastanawiasz się, jak to zrobić na wieki - dzięki! –