从“添加”视图将文本框转换为下拉框

时间:2011-09-05 17:20:42

标签: cakephp

你可以帮我解决这个问题吗?我的添加视图(app \ views \ tickets \ add.ctp)上有4个表单元素,但'status'输入位于文本框中。我希望将其转换为下拉框,其中填充了名为Status的表中字段的数据。我该怎么做呢?

echo $this->Form->input('problemno');
echo $this->Form->input('status');
echo $this->Form->input('description');
echo $this->Form->input('user_id');

谢谢,

莱曼

3 个答案:

答案 0 :(得分:1)

如果要强制输入字段的类型,请不要使用input()方法,而是使用所需类型的方法。

要获得下拉列表,可以使用select()方法:

$options = array('status1' => 'status1', 'status2' => 'status2', ...);
$this->Form->select('status', $options);

请参阅http://book.cakephp.org/view/1430/select

答案 1 :(得分:0)

如果与“状态”表相关联的模型与您当前的模型(可能是“Ticket”)与hasMany,hasOne或belongsTo相关(...只要您的“状态”模型显示在您身上调试$this->Ticket->read(null, <some_ticket_id>))你可以做

echo $this->Form->input('StatusModel.field')

并且蛋糕将使该领域自动化,无论它需要什么。

你必须四处寻找如何使cakePHP根据数据库字段给你一个下拉选择。

答案 2 :(得分:0)

这不是一个正确的方法。它可能是好的,或者您可能会发现稍后更改它是一个问题。但是如果你只是想创建一个包含一些选项的下拉菜单,那么你可以去:

echo $this->Form->input('status', array('options'=>array('status1'=>'status1','status2'=>'status2','status3'=>'status3')));