无法弄清楚我在做错了什么:
我有一个控制器:
$this->set('sizes', array('4x4'=>'4x4','6x6'=>'6x6','8x8'=> '8x8'));
该视图包含以下内容:
echo $this->Form->input('size');
显示正确的数组下拉框。
在相同功能的同一个控制器中我有:
$this->set('states', 'this state');
该视图包含以下内容:
echo $this->Form->input('state');
但“状态”文本框中没有任何信息。 如果我将状态行更改为:
$this->set('states', array('this state'));
下拉框将显示单个条目。我想让文本框填充信息而不是下拉框。有什么建议吗?
答案 0 :(得分:0)
为了确定,您是否尝试过设置表单输入的type
?
$this->Form->input('state', array('type' => 'text'));
可能没有填充输入,因为它使用单数“state”而不是“states”。我一直认为表单字段中填充了$this->data/$this->request->data
数组中的数据。选择,复选框等是一种特殊情况,因为它们有一个选项数组,在您的大小输入的情况下填充$sizes
。
因此,假设您的表单模型为Order
,并在$this->request->data
中设置OrdersController
:
$this->request->data['Page']['state'] = 'this state';
如果由于某种原因这对您不起作用,您可以始终明确设置输入值:
$this->Form->input('state', array('value' => $states));