2013-01-05 96 views
0

我有一些模型類別,需要克隆。我知道,我可以通過複製獲得一個,取消其id屬性並保存它。但它似乎不是一個好方法,如果你的模型有一些hasMany關聯。然後,您需要使用模型執行此類操作,然後保存它,然後對所有關聯執行相同的操作並保存它們。如何在CakePHP中克隆模型

我是否需要在模型中定義方法然後調用它?

我可以得到像對象一樣的模型,而不像數組?

有沒有辦法讓它工作是這樣的:

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

$newCat = clone $category; 

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

關於這件事感覺不對。你爲什麼克隆?你是否試圖保存剛剛從數據庫中取得的類別? –

回答

3

在你的代碼如。你似乎認爲$category變量是一個對象,實際上它是一個數組。所以不存在克隆問題。 Cake模型不像活動記錄實例。只是消費和生產數組。

詮..要實現你需要什麼,你會通過$category陣列並取消設置主鍵字段(通常是ID)的所有記錄都循環,然後你可以通過該數組類別 - >白水()