将具有相同名称的多个输入保存到cakePHP中的不同行

时间:2015-06-19 05:41:17

标签: php html ajax cakephp cakephp-2.5

我有一组输入,每个输入具有相同的名称,如图enter image description here

所示

我想用每个房间数和标准费率保存每个类别。所有类别输入的名称(<input name="category[]">)都与房间数和标准费率相同。

到目前为止,我已经尝试过:

foreach($data['category'] as $cat){
 $this->Model->save($cat)
//Will save only categories without No. of rooms and standard rate.
}

有没有办法foreach通过3组输入并相应地保存不同行中的数据?我的表列以输入名称命名。

2 个答案:

答案 0 :(得分:1)

使用FormHelpersaveMany很容易实现。首先,在您的视图中,您希望使用FormHelper包含表单元素,例如: -

echo $this->Form->input('Model..category');

您需要将Model替换为模型别名。 ..将导致它输出名称为Model[][category]的输入。如果要控制数字索引(例如在循环中将其与其他字段关联),可以将其更改为$this->Form->input('Model.1.category'),这将生成名为Model[1][category]的输入。

然后在您的控制器中,您可以使用saveMany保存此数据: -

$this->Model->saveMany($this->request->data);

再次将Model替换为您的模型的别名。

答案 1 :(得分:0)

您是否能够将此类格式发送到您的控制器,然后您可以在Caek php中使用saveMany()函数“

http://book.cakephp.org/2.0/en/models/saving-your-data.html

OnAuthorization

$data = array(
   array('field1' => 'valuea', 'field2' => 'valuea'),
   array('field1' => 'valueb', 'field2' => 'valueb'),
   array('field1' => 'valuec', 'field2' => 'valuec')
)

格式。

你可以这样做 $这 - &GT;模型 - &GT; saveMany($数据);