$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 создать новую запись.
В зависимости от ваших конкретных данных, может быть более экономичным написать запрос INSERT … SELECT …
напрямую, используя $Model->query()
.