如何在cake php中按隐藏类型添加数组?

如何在cake php中按隐藏类型添加数组?,php,forms,cakephp,Php,Forms,Cakephp,我想通过php中的隐藏数据类型将数组从一个表单传送到另一个表单。 我不知道会有多少号码。所以,我不知道有多少。 e、 g PHP中的示例: foreach($rNo as $no){ echo "<input type='hidden' name='no[".$no."]' value='".$no."'>"; } foreach($rNo作为$no){ 回声“; } 如何将此代码转换为CakePHP$form->hidden()?序列化数组并存储它。对于您刚刚使用的隐藏

我想通过php中的隐藏数据类型将数组从一个表单传送到另一个表单。 我不知道会有多少号码。所以,我不知道有多少。 e、 g

PHP中的示例:

foreach($rNo as $no){
    echo "<input type='hidden' name='no[".$no."]' value='".$no."'>";
}
foreach($rNo作为$no){
回声“;
}

如何将此代码转换为CakePHP
$form->hidden()

序列化数组并存储它。

对于您刚刚使用的隐藏输入类型

$form->input('Model.field',array('type'=>'hidden')

在控制器中,您只需设置数据,例如
$this->data['Model']['field']='value'

对于多个字段,可以循环使用$this->data数组

您的this->data看起来像
$this->data['Model'][0]['field'],$this->data['Model'][1]['field']

foreach($this->data['Model'] as $key => $data){
    $form->input('Model.'.$key.'.field', array('type' => 'hidden'));
}
它不必是$this->data,您可以使用任何变量。但是$this->data会自动填充输入字段


但是如果你愿意,你也可以传递这个值<代码>$form->input('Model.field',数组('type'=>'hidden','value'=>'myvalue'))

它不能作为字符串存储在单个隐藏字段中吗?我想你误解了OP的问题。他在问如何有效地使用cakePHP助手函数
$form->hidden()
,以生成他在上面发布的等效php代码。其他表单不知道该函数将携带多少数字。这就是为什么,我想按隐藏类型携带数组。为什么-1?这是将数组放入一个字段的唯一方法。它生成一个字符串,可以放入隐藏字段的值字段中。您可以将其保存在会话中,例如:$this->session->write('MyData','youdata');,并检索它$this->Session->read('MyData');