3
如何複製現有模型記錄?換言之,如何檢索包含相關數據的現有模型,然後保存該模型和數據的COPY(模型和相關數據都被複制)?使用簡單的SQL這很簡單,但我想用CakePHP的最佳實踐來完成。CakePHP新手問題:如何複製模型及其相關數據?
如何複製現有模型記錄?換言之,如何檢索包含相關數據的現有模型,然後保存該模型和數據的COPY(模型和相關數據都被複制)?使用簡單的SQL這很簡單,但我想用CakePHP的最佳實踐來完成。CakePHP新手問題:如何複製模型及其相關數據?
$record = $this->Model->find('first', array('condition' => array('Model.id' => $id)));
unset($record['Model']['id'], $record['RelatedModel']['id'], /* further ids */);
$this->Model->create();
$this->Model->saveAll($record);
基本上,你要確保有包含在數據沒有id
字段,然後只需將它保存如常。這將促使Cake創建一個新紀錄。
儘管如此,根據您的具體數據,使用$Model->query()
直接編寫INSERT … SELECT …
查詢可能會更經濟。
非常感謝 - 我會試試看。使用直接查詢幾乎肯定會更經濟,但我想嘗試使用「CakePHP方式」。 - 史蒂夫 – Steve 2010-02-21 03:22:43