cakephp 3 如何从现有实体创建新记录

ing*_*ous 2 cakephp cakephp-3.0

我有一个包含相关数据的实体,我想将其保存在新记录中。

我试试:

$newTour = $this->Tours->get($id, ['contain' => ['Cities', 'Tags']]);
$newTour->set('id', null);
$this->Tours->save($newTour);
Run Code Online (Sandbox Code Playgroud)

但我看到了这个错误:

更新需要所有主键值

我该怎么办?

ndm*_*ndm 5

通过get()or检索的实体find()将被设置为非新的,这会导致它们在保存时以更新而不是插入过程结束。

如果要将它们作为新记录插入,则必须将它们标记为新记录,另外还要取消设置主键。

// ...
$newTour->isNew(true);
$newTour->unsetProperty('id');
// ...
Run Code Online (Sandbox Code Playgroud)

也可以看看