CakePHP ::如何使用自定义SQL查询创建Dropdown

时间:2013-11-11 06:20:31

标签: cakephp

在UsersController中:

$query = $this->User->query("SELECT name FROM Type");
$this->set('type',$query);

在view.ctp中:

echo $this->Form->input('Type_id',array('options'=>$type));

这会将Admin,Type,1和User,Type添加到下拉列表中。

我想在Dropdown中仅显示 Admin and User

类型表仅包含两列ID和类型

提前致谢。

2 个答案:

答案 0 :(得分:1)

试试这个

$query = $this->User->query("SELECT id,name FROM Type");    
$query = Hash::combine($query, '{n}.Type.id', '{n}.Type.name');
$this->set('type',$query);

如果UserType模型之间存在关联,您也可以执行上述操作

$types = $this->User->Type->find('list', array('fields' => array('id', 'name')));

并在view.ctp

echo $this->Form->input('type_id',array('options'=>$types)); // here better to use type _id instead of Type_id

答案 1 :(得分:0)

使用惯例

尽量避免普通的SQL。

您应该使用Model :: find('list')并根据您的需要进行调整

Here是您需要的文档。