停止 prePersist LifeCycleEvent 在 Doctrine Entity 中递归

Stop prePersist LifeCycleEvent being recursive in Doctrine2 Entiy

我正在使用 prePersist LifeCycleEvent 来更新实体,更新此实体会创建一个循环,因为对象会一遍又一遍地重新保存到数据库中。

public function doSomething(LifecycleEventArgs $event)
{
     // Stuff here
     $em = $event->getEntityManager();
     $em->persist($entity);
     $em->flush();
}

如何让实体更新自己,而不导致他的递归循环?

由于 prePersist 事件是在实际安排实体插入工作单元之前触发的,您可以在此处更改实体状态而无需手动调用 persist/flush。

只需在回调中做你的事情,不要为实体管理器操心。