我需要从某个实体的变化中创建历史记录,我希望在新表中保留所有更改 . 我正在尝试从EventListeners preUpdate执行它 . 但是当我尝试为了保持我的新对象而进行刷新时,我得到了一个错误记忆,这是我创建一个循环引用的东西 . 是否有可能创建一个新实体并从preUpdate(而不是当前实体)持久化它

class TestListener {


private $container;

public function __construct(ContainerInterface $container)
{

    $this->container = $container;
}

public function preUpdate(LifecycleEventArgs $args)
{
    $entity = $args->getObject();


    /*if (!$entity instanceof Product) {
        return;
    }*/

    $entityManager = $args->getObjectManager();
    $histoRVSrep = $entityManager->getRepository('AppBundle:HistoRapportSterilisation');



    $histo = new HistoRapportSterilisation();

    foreach ($args->getEntityChangeSet() as $key => $value) {
        $t = "set".ucfirst($key);
        $histo->$t($value[0]);           

    };
    $entityManager->persist($histo);
    $entityManager->flush();

}

我做错了什么?谢谢