Symfony Oneup/AclBundle的DoctrineSubscriber中的条令依赖项更改导致错误

Symfony Oneup/AclBundle的DoctrineSubscriber中的条令依赖项更改导致错误,symfony,doctrine,bundle,symfony-2.3,Symfony,Doctrine,Bundle,Symfony 2.3,我正在使用Oneup\AclBundle,在上次更新后,我无法再保存任何实体 当我尝试将实体保存到数据库时: $em = $this->getDoctrine()->getManager(); $em->persist($entity); $em->flush(); 。。。我得到这个错误: ContextErrorException:可捕获的致命错误:传递给Oneup\AclBundle\EventListener\DoctrineSubscriber::postPer

我正在使用Oneup\AclBundle,在上次更新后,我无法再保存任何实体

当我尝试将实体保存到数据库时:

$em = $this->getDoctrine()->getManager();
$em->persist($entity);
$em->flush();
。。。我得到这个错误:

ContextErrorException:可捕获的致命错误:传递给Oneup\AclBundle\EventListener\DoctrineSubscriber::postPersist()的参数1必须是Doctrine\Common\Persistence\Event\LifecycleEventArgs的实例,给定的Doctrine\ORM\Event\LifecycleEventArgs的实例,在第61行的vendor/symfony/symfony/src/symfony/Bridge/Doctrine/ContainerAwareEventManager.php中调用,并在vendor/oneup/acl bundle/oneup/AclBundle/EventListener/doctrinessubscriber.php第18行中定义

我发现Oneup/AclBundle有以下更改:

基于此,我尝试更改文件vendor/oneup/acl bundle/oneup/AclBundle/EventListener/DoctrineSubscriber.php:

use Doctrine\Common\Persistence\Event\LifecycleEventArgs;

...

class DoctrineSubscriber implements EventSubscriber
{
    ...
    public function postPersist(LifecycleEventArgs $args)
    {
        ...

        $entity = $args->getObject();
        $object = new \ReflectionClass($entity);

        ...
    }
}
。。。致:

use Doctrine\ORM\Event\LifecycleEventArgs;

...

class DoctrineSubscriber implements EventSubscriber
{
    ...

    public function postPersist(LifecycleEventArgs $args)
    {
        ...

        $entity = method_exists($args, 'getObject')? $args->getObject(): $args->getEntity(); // the called method sometimes changes
        $object = new \ReflectionClass($entity);

        ...
    }
}
。。。就像这样,它是有效的

如何使用此更新使事情恢复正常工作? 我想我必须让一个普通的条令事件类被解雇,而不是ORM条令事件类

更新时,此捆绑包的日志为:

  • 更新oneup/acl包开发主机(b3c6ddb=>fc3fdbc) 签出FC3FDBCF3547F0E0520EBB7F7E86E3A05779D4

引发上述错误的原因是继承范围太窄和定义的编写器依赖关系太宽


作为记录:在中报告了该错误,并在提交时修复了该错误。如果遇到此错误,请将捆绑包更新为新版本,并将
doctrine/orm
更新为
2.4.2
,如中所述。

bundle dev here。您运行的是哪一版本的条令/通用?看来我把约束搞错了。根据事件对象从
LifecycleEventArgs
继承到2.4版,至少可以说这不是最佳版本。我使用的是v2.4.1Hi@devsheeep版本,您需要进一步的信息吗?我还是被困在这件事上。。。虽然我暂时改变了我说的文件,所以我可以继续。也许我会回到以前的版本…嘿嘿。抱歉耽搁了,我这几天很忙。你能给我制造一个问题吗,我会试着找些时间来解决这个问题!事实上,我的错误似乎与此相同,我将在这里进行评论。