【发布时间】:2011-01-19 05:50:36
【问题描述】:
如何复制现有模型记录?换句话说,如何检索具有相关数据的现有模型,然后保存该模型和数据的副本(模型和相关数据都被复制)?这使用简单的 SQL 很简单,但我想使用 CakePHP 最佳实践来做到这一点。
【问题讨论】:
如何复制现有模型记录?换句话说,如何检索具有相关数据的现有模型,然后保存该模型和数据的副本(模型和相关数据都被复制)?这使用简单的 SQL 很简单,但我想使用 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 … 查询可能更经济。
【讨论】: