2012-09-27 29 views
0
设置

想不通我在做什么错在这里:CakePHP的使用这个 - >不数组

我有一个控制器:

$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

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

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

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

所以我们说你的表单模型是Order,你在你的OrdersController设置$this->request->data

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

如果不为你工作,出于某种原因,你总是可以设置输入的值明确:

$this->Form->input('state', array('value' => $states)); 
相关问题