我需要从某个实体的变化中创建历史记录,我希望在新表中保留所有更改 . 我正在尝试从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();
}
我做错了什么?谢谢