2012-05-29 1 views
5

Я пытаюсь использовать событие onFlush в Доктрине для сохранения новой сущности, но это приводит к бесконечному циклу при попытке сохранить. Вот то, что я делаю в приемнике: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); 
} 

Я знаю, что я хотел бы получить петлю, когда я смыв в onFlush Событии, но я этого не делаю! Я только вычислил новый набор изменений, как он говорит в документации.

Может ли кто-нибудь сказать, где проблема?

EDIT: Это может быть интересно, что я уверен, что он работал несколько дней назад, но я ничего не могу вспомнить (что я знаю, не может быть правдой;) изменение) ...

+0

Бывает и со мной, но не может понять, почему ... Я надеюсь, что кто-то здесь поможет нам – mokagio

ответ

3

Я была похожа проблемы с событием onFlush. Пожалуйста, измените

$em->persist($notification); 

в

$uow->persist($notification); 

Пожалуйста, попробуйте это и дайте мне знать, если это работает.