Php 重载对象的_clone方法以将其ID设置为null

Php 重载对象的_clone方法以将其ID设置为null,php,symfony,Php,Symfony,我想克隆对象并在数据库中保存一个副本,但问题是需要将ID重置为null,以便它可以在数据库中获得自动序列号 我在利用教义和符号2。我知道我需要修改实体的克隆方法,但我不知道如何在其中插入内容 我有一个基本的克隆操作: public function cloneAction() { $object = $this->admin->getSubject(); if (!$object) { throw new NotFoundHttpException(

我想克隆对象并在数据库中保存一个副本,但问题是需要将ID重置为null,以便它可以在数据库中获得自动序列号

我在利用教义和符号2。我知道我需要修改实体的克隆方法,但我不知道如何在其中插入内容

我有一个基本的克隆操作:

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()));
}

索纳塔的文档说我必须这样做,但我以前从未使用过克隆,而且我对PHP比较陌生。任何帮助都很好。

没有问题。无论如何,没有必要重载克隆方法。我所要做的就是修复实体映射,它成功了。

以下是文档: