2012-05-29 17 views
5

Cerco di utilizzare l'evento onFlush in Doctrine per mantenere una nuova entità, ma porta a un ciclo infinito quando si tenta di persistere. Ecco quello che faccio nel Listener:persist new entity onFlush

$countusers = $em->getRepository('DankeForumBundle:NotificationUser')->countNotificationsByDeal($entity); 
if ($countusers > 0) { 
    $notification = new NotificationAction(); 
    $notification->setDeal($entity); 
    $notification->setDatepost(new \DateTime()); 
    $notification->setNotificationtype(NotificationAction::TYPE_TOP_DEAL); 
    // $em is set to EntityManager 
    $em->persist($notification); 
    // $uow ist set to UnitOfWork 
    $uow->computeChangeSet($em->getClassmetadata('Danke\ForumBundle\Entity\NotificationAction'), $notification); 
} 

So che avrei ricevuto un ciclo, quando ero Flushing nel onFlush evento, ma non faccio questo! Calcolo solo il nuovo set di modifiche come indicato nella documentazione.

Qualcuno può dire dov'è il problema?

EDIT: E 'forse interessante, che sono sicuro ha funzionato qualche giorno fa, ma non riesco a ricordare cambiare niente (che so non può essere vero;)) ...

+0

Succede anche a me, ma non riesco a capire perché ... Spero che qualcuno qui ci possa aiutare – mokagio

risposta

3

ho avuto simili problemi con onFlush Event. Per favore cambia

$em->persist($notification); 

a

$uow->persist($notification); 

Si prega di provare questo e fammi sapere se questo è ora di lavoro.

Problemi correlati