2011-09-04 30 views
10

Tôi muốn lấy 1 cột từ một bảng trong Drupal làm 2 bí danh. Một cái gì đó như thế này nhưng với các phương pháp truy vấn của Drupal .:Cách chọn từ Drupal với bí danh

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

đang Drupal này không thiết lập các bí danh ngay:

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

Nó trả về một cái gì đó như: [name] => Science [node_name] => Science

Có cách nào để đặt bí danh?

Trả lời

31

Phương pháp 'trường' không cho phép bạn đặt bí danh. Nếu bạn nhìn vào các tài liệu, đối số thứ hai cho các trường là một mảng được lập chỉ mục, vì vậy chỉ các số.

http://api.drupal.org/api/drupal/includes--database--select.inc/function/SelectQuery::fields/7

Nếu bạn cần bí danh, sau đó bạn cần phải sử dụng '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

nhờ. tôi đã thử tìm kiếm tài liệu, nhưng tài liệu bị cấu trúc kém hoặc google không lập chỉ mục. –

+0

Đã tự hỏi làm thế nào để làm điều này cho các lứa tuổi - cảm ơn! –