10

Drupal のテーブルから 1 つの列を 2 つのエイリアスとして取得したいと考えています。このようなものですが、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

エイリアスを設定する方法はありますか?

4

1 に答える 1

32

「フィールド」メソッドでは、エイリアスを設定できません。ドキュメントを見ると、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');
于 2011-09-04T15:23:05.930 に答える