Может ли другой объект в рамках данного обратного вызова жизненного цикла быть изменен и добавлен к тому же гриппу sh? Первоначально я не включил второй грипп sh () в обратный вызов, и он не был сохранен. Я пытаюсь добавить один, и он сохраняется, но инициирует несколько вызовов на EntityOne::preFlush()
, и мне нужно было добавить флаг, чтобы игнорировать будущие вызовы, что кажется неправильным. Как правильно это сделать?
<?php
class MyService
{
public function save()
{
//...
$this->em->persist($entityTwo);
$this->em->flush();
}
}
class EntityOne
{
/**
* @var EntityTwo
*/
private $entityTwo;
private $preFlushComplete=false;
/**
* @ORM\PreFlush
*/
public function preFlush(PreFlushEventArgs $event)
{
if(!$this->preFlushComplete) {
$this->preFlushComplete=true;
$this->entityTwo->setTime(now());
$event->getEntityManager()->persist($this->entityTwo);
}
}
}