Cakephp如果数据库中不存在id,则更新多个记录或创建新记录

时间:2016-10-25 03:26:17

标签: cakephp cakephp-2.0 cakephp-2.3

你好我有一个显示输入字段的编辑表单。我在这些字段中显示数据库中的数据,以便用户可以编辑它们。还有一个按钮,要求添加新字段。我能够编辑多个字段,但问题是如果没有记录的现有ID,我如何在数据库中创建新字段。 注意:对于新字段,我发送0 id,以便我可以在cakephp中检查它是否有新字段。

foreach ($exp as $k => $v) {
  $dat[$k]["prp_id"] = $prpid;
  $dat[$k]["exp_company"] = $v['company'];
  $dat[$k]["position"] = $v['position'];
  $dat[$k]["exp_id"] = $v['exp_id'];
}

$this->Experience->saveAll($dat, array('conditions' => array('exp_id' => $v['exp_id'])));

这是更新所有字段。顺便说一下我也不确定为什么它正常工作,因为我在这里$v['exp_id']只发送一个值,因为它不在循环中,但它工作正常意味着我可以使用多个字段,我不知道如何。所以最后我有两个问题。一种是在exp_id0的情况下创建新记录,其次是我的此代码适用于更新记录的原因。

1 个答案:

答案 0 :(得分:0)

试试这个:

 foreach ($exp as $k => $v) {
   $dat[$k]["prp_id"] = $prpid;
   $dat[$k]["exp_company"] = $v['company'];
   $dat[$k]["position"] = $v['position'];

   if ($v['exp_id'] != 0) {
     $dat[$k]["exp_id"] = $v['exp_id'];
   }
 }

 $this->Experience->saveAll($dat);