0

我有一些模型类别,我需要克隆。我知道,我可以通过复制已存在的内容来做到这一点,取消设置其 id 属性并保存它。但如果你的模型有一些 hasMany 关联,这似乎不是一个好方法。然后您需要对模型执行此类操作,保存它,然后对所有关联执行相同的操作并保存它们。

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

我可以像对象而不是数组那样获得模型吗?

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

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

$newCat = clone $category; 

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

1 回答 1

3

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

详细说明..要实现您需要的内容,您必须遍历$category数组中的所有记录并取消设置主键字段(通常是 id),然后您可以将该数组传递给 Category->saveAll()

于 2013-01-06T13:36:06.947 回答