我收到以下错误消息,
捕获致命错误:传递给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 }
答案 0 :(得分:0)
问题可能是由postUpdate事件处理程序中的$em->flush()
引起的,后者将触发UnitOfWork::executeUpdates
函数调用。
如果是这种情况,那么我发现的唯一解决方法是the one I documented in a Doctrine bug report(虽然我不认为这是一个真正的Doctrine错误)。