2011-09-04 34 views
10

我想從Drupal的表格中獲取1列作爲2個別名。事情是這樣的,但與Drupal的查詢方法:如何從別名中選擇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

有什麼辦法設置別名?

回答

31

'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'); 
+0

感謝。我試圖搜索文檔,但是文檔結構不合理,或者谷歌沒有編制索引。 –

+0

一直想知道如何做這個年齡 - 謝謝! –