我想克隆对象并在数据库中保存副本,但问题是ID需要重置为null,以便它可以获取数据库中的自动序列号。
我正在使用Doctrine和Symfony2。我知道我需要修改我的实体的__clone方法,但我不知道如何在其中插入。
我有一个基本的克隆动作:
public function cloneAction()
{
$object = $this->admin->getSubject();
if (!$object) {
throw new NotFoundHttpException(sprintf('unable to find the object with id : %s', $id));
}
// Be careful, you may need to overload the __clone method of your object
// to set its id to null !
$clonedObject = clone $object;
$this->admin->create($clonedObject);
$this->addFlash('sonata_flash_success', 'Cloned successfully');
return new RedirectResponse($this->admin->generateUrl('list', $this->admin->getFilterParameters()));
}
Sonata的文档说我必须这样做,但我之前从未使用__clone,而且我对PHP很新。任何帮助都会很好。
答案 0 :(得分:0)
没有问题。没有必要重载__clone方法。我所要做的就是修复我的实体映射并且它有效。