2011-09-04 8 views
10

Voglio ottenere 1 colonna da una tabella in Drupal come 2 alias. Qualcosa di simile, ma con metodi di query di Drupal .:Come selezionare da Drupal con alias

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

Questo codice Drupal non imposta il diritto alias:

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

Esso restituisce qualcosa di simile: [name] => Science [node_name] => Science

C'è un modo per impostare l'alias?

risposta

31

Il metodo "fields" non consente di impostare alias. Se si guardano i documenti, il secondo argomento per i campi è un array indicizzato, quindi solo numeri.

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

Se avete bisogno di alias, allora avete bisogno di usare '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

grazie. Ho provato a cercare la documentazione, ma il documento è mal strutturato, o Google non lo indicizza. –

+0

Ti stai chiedendo come fare per secoli - grazie! –

Problemi correlati