Symfony2 postUpdate侦听器无法正常工作

时间:2014-06-15 21:25:15

标签: symfony doctrine-orm

我收到以下错误消息,

  

捕获致命错误:传递给Doctrine \ ORM \ Event \ PreUpdateEventArgs :: __ construct()的参数3必须是数组类型,给定null,在

中调用

并且不知道从哪里开始解决这个问题。你可以在下面看到我的听众(缩短)

    public function postUpdate(LifecycleEventArgs $args){
    $entity = $args->getEntity();

    $em = $args->getEntityManager();
    $args->getEntityManager()->clear();

    $securityContext = $this->container->get('security.context');
    $token = $securityContext->getToken();
    $userLoggedIn = $token->getUser();


    if ($entity instanceof Activity) {




    $em->flush();


    }
}

有人有任何建议吗?

这是来自config

的我的服务部分
   activity.listener:
    class: My\Bundle\EventListener\ActivityListener
    arguments: ['@service_container']
    tags:
        - { name: doctrine.event_listener, event: prePersist }
        - { name: doctrine.event_listener, event: postPersist }
        - { name: doctrine.event_listener, event: postUpdate }

1 个答案:

答案 0 :(得分:0)

问题可能是由postUpdate事件处理程序中的$em->flush()引起的,后者将触发UnitOfWork::executeUpdates函数调用。

如果是这种情况,那么我发现的唯一解决方法是the one I documented in a Doctrine bug report(虽然我不认为这是一个真正的Doctrine错误)。