如何在CakePHP中克隆模型

时间:2013-01-05 17:25:37

标签: cakephp model cakephp-1.3

我有一些模型类别,我需要克隆。我知道,我可以复制现有的一个,取消设置它的id属性并保存它。但是如果你的模型有一些hasMany关联,它似乎不是一个好方法。然后你需要用模型做这样的动作,保存它然后用所有关联做同样的事情并保存它们。

我是否需要在模型中定义方法然后调用它?

我可以获得类似对象的模型而不喜欢数组吗?

有没有办法让它像这样工作:

$category = $this->Category->find("first", array(
    'conditions' => array('categoryID' => $categoryID),
    'contain' => array('Connected')
));

$newCat = clone $category; 

$this->Category->save($newCat);

1 个答案:

答案 0 :(得分:3)

在您的代码中,例如。你似乎假设$category变量是一个对象,而实际上它是一个数组。所以克隆没有问题。蛋糕模型与活动记录实例不同。只消耗并生成数组。

Elaborating ..为了达到你所需要的,你必须遍历$category数组中的所有记录并取消设置主键字段(通常是id),然后你可以将该数组传递给Category-> saveAll( )