我正在尝试复制表单中的特定条目。我通过表单 ID 获取所有列值,并尝试使用 saveAll 将其保存为新行。但它不是创建新行,而是更新现有条目。
这是我的代码:
function duplicateForm($data)
{
$this->data['Form']['id']=$data['Form']['id'];
$existingForm=$this->find('all',array('conditions'=>array('Form.id'=>$this->data['Form']['id'])));
foreach($existingForm as $ex):
$this->data['Form']['name']=$ex['Form']['name']." (copy)";
$this->data['Form']['created_by']=$ex['Form']['created_by'];
$this->data['Form']['access']=$ex['Form']['access'];
$this->data['Form']['status']='Incompleted';
if($this->saveAll($this->data))
{echo "Success";}
endforeach;
}
我想也许是因为表单名称相同,所以它正在更新。所以我将“复制”字符串添加到表单的名称中。然而,旧条目只是在更新。
这些是我的表格“表格”的列及其类型:
Field Type
id int(11)
name varchar(25)
created_by int(11)
access varchar(10)
created timestamp
modified timestamp
status varchar(15)
id 字段是自增的,所以我想如果我给一个 save 方法,id 会自己生成。