2012-05-29 8 views
5

新しいエンティティを永続化するためにDoctrineのonFlushイベントを使用しようとしましたが、永続化しようとすると無限ループに陥ります。ここで私はリスナーに何をすべきかです:新しいエンティティ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イベントに関する問題。これを試してみて、これは今働いている場合は私に知らせてください

$uow->persist($notification); 

$em->persist($notification); 

を変更してください。

関連する問題