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' 方法不允许您设置别名。如果您查看文档,字段的第二个参数是索引数组,因此只有数字。

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 回答