2011-09-04 14 views
10

Quiero obtener 1 columna de una tabla en Drupal como 2 alias. Algo como esto pero con métodos de consulta de Drupal .:Cómo seleccionar de Drupal con el alias

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

Este código de Drupal no establecer el alias derecha:

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

Se vuelve algo como: [name] => Science [node_name] => Science

¿Hay alguna manera de establecer el alias?

Respuesta

31

El método 'campos' no le permite establecer alias. Si mira los documentos, el segundo argumento para los campos es una matriz indexada, por lo que solo los números.

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

Si necesita alias, entonces es necesario utilizar '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

gracias. Intenté buscar la documentación, pero el documento está mal estructurado o Google no lo indexa. –

+0

Me he estado preguntando cómo hacer esto por años, ¡gracias! –

Cuestiones relacionadas