I created an object listener for this object Foothat listens for the event preFlush. I want to create a new object Barwhenever the object is Fooupdated or created. My problem is the preFlush event fires again computeChangeSets(), which leads to an infinite loop. Does anyone have a solution or alternative approach to this use case?
class SomeListener
{
public function onPreFlush(Foo $foo, PreFlushEventArgs $eventArgs)
{
$em = $eventArgs->getEntityManager();
$uow = $em->getUnitOfWork();
$bar = new Bar();
$bar->setX('test');
$foo->addBar($bar);
$em->persist($bar);
$meta = $em->getClassMetadata(get_class($foo));
$uow->recomputeSingleEntityChangeSet($meta, $foo);
$uow->computeChangeSets();
}
}
source
share