如何从别名中选择Drupal

Edu*_*uca 10 drupal drupal-database

我想从Drupal的表中获得1列作为2个别名.像这样的东西,但使用Drupal的查询方法:

SELECT name AS label, name AS value FROM node WHERE 1
Run Code Online (Sandbox Code Playgroud)

这个Drupal代码没有设置正确的别名:

$query = db_select('node', 'node');
$query->fields('node', array('label' => 'name','value' => 'name'));
Run Code Online (Sandbox Code Playgroud)

它返回如下内容: [name] => Science [node_name] => Science

有没有办法设置别名?

log*_*yth 32

'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');
Run Code Online (Sandbox Code Playgroud)