2011-09-04 11 views
10

Drupalのテーブルから2つのエイリアスとして1列を取得したいと考えています。それはのようなものを返す別名でDrupalから選択する方法

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

:このようなしかし、Drupalののクエリメソッドで何か:

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

このDrupalのコードは、右のエイリアスを設定しない[name] => Science [node_name] => Science

にどのような方法がありますエイリアスを設定しますか?

答えて

31

'fields'メソッドではエイリアスを設定できません。ドキュメントを見ると、フィールドの2番目の引数はインデックス付きの配列なので、数字だけです。

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

感謝。私はドキュメントを検索しようとしましたが、ドキュメントがひどく構造化されているか、またはGoogleがインデックスに登録していません。 –

+0

年齢のためにこれを行う方法が不思議に思っています - ありがとう! –

関連する問題