Adding additional persist calls to preUpdate call in Symfony 2.1 Adding additional persist calls to preUpdate call in Symfony 2.1 symfony symfony

Adding additional persist calls to preUpdate call in Symfony 2.1


The key is to persist them after the flush:

<?phpnamespace Comakai\CQZBundle\Handler;use Symfony\Component\DependencyInjection\ContainerInterface;use Doctrine\Common\EventSubscriber;use Doctrine\ORM\Event;/** *  */class YourHandler implements EventSubscriber{    protected $things = [];    public function getSubscribedEvents()    {        /**         * @todo Check if this is running in the console or what...         */        if (isset($_SERVER['HTTP_HOST'])) {            return [                'preUpdate',                'postFlush'            ];        }        return [];    }    public function preUpdate(Event\LifecycleEventArgs $eventArgs)    {        $em = $eventArgs->getEntityManager();        $uow = $em->getUnitOfWork();        $entity = $eventArgs->getEntity();        $updateArray = $eventArgs->getEntityChangeSet();        //Updates        if (($entity instanceof Bam) === false) {            $thing = new OtherThing();            $thing->setFoo('bar');            $this->things[] = $thing;        }    }    public function postFlush(Event\PostFlushEventArgs $event)    {        if(!empty($this->things)) {            $em = $event->getEntityManager();            foreach ($this->things as $thing) {                $em->persist($thing);            }            $this->things = [];            $em->flush();        }    }}