【问题标题】:Save multiple inputs with same name to different rows in cakePHP将具有相同名称的多个输入保存到cakePHP中的不同行
【发布时间】:2015-06-19 05:41:16
【问题描述】:

我有一组同名输入,如图

我想保存每个类别的房间数量和标准价格。所有类别输入具有相同的名称 (<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 组输入并相应地将数据保存在不同的行中?我的表格列以输入名称命名。

【问题讨论】:

  • 您使用的是哪个版本的 CakePHP?
  • @drmonkeyninja 2.5.7 版
  • 我认为你需要 saveMany book.cakephp.org/2.0/en/models/…
  • @Michel 谢谢。请看下面我的回答。记住以后一定要包含 Cake 版本号。

标签: php html ajax cakephp cakephp-2.5


【解决方案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 替换为您的模型别名。

【讨论】:

    【解决方案2】:

    你能把这种格式发送到你的控制器,然后你可以在 Caek php 中使用 saveMany() 函数“

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

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

    或在

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

    格式。

    你可以这样做 $this->Model->saveMany($data);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-09
      • 1970-01-01
      • 2014-11-28
      • 2017-08-03
      • 2014-10-16
      • 2017-07-11
      • 2022-07-13
      • 1970-01-01
      相关资源
      最近更新 更多