0

无法弄清楚我在这里做错了什么:

我有一个控制器:

$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')); 

将显示一个下拉框,其中包含单个条目。我想让文本框填充信息而不是下拉框。有什么建议么?

4

1 回答 1

0

可以肯定的是,您是否尝试过设置type表单输入?

$this->Form->input('state', array('type' => 'text'));

可能没有填充输入,因为它使用单数“状态”而不是“状态”。我也一直理解表单字段是用$this->data/$this->request->data数组中的数据填充的。选择、复选框等是一种特殊情况,因为它们有一个选项数组,在您的大小输入的情况下,它会填充$sizes.

因此,假设您的表单模型是Order并且您设置$this->request->dataOrdersController

$this->request->data['Page']['state'] = 'this state';

如果由于某种原因这对您不起作用,您始终可以明确设置输入的值:

$this->Form->input('state', array('value' => $states));
于 2012-09-27T10:01:51.250 回答