Doctrine orm 原则2代理类破坏Symfony2 ACL
当试图在init:acl生成的acl_classes表中存在条目的实体上运行findAcl()时,我得到一个AclNotFoundException 在调用findAcl()之前,对相关对象使用createAcl()进行测试,会在acl_类中为相同类型的代理类显示一条新记录,并且操作成功完成Doctrine orm 原则2代理类破坏Symfony2 ACL,doctrine-orm,symfony,acl,proxy-classes,Doctrine Orm,Symfony,Acl,Proxy Classes,当试图在init:acl生成的acl_classes表中存在条目的实体上运行findAcl()时,我得到一个AclNotFoundException 在调用findAcl()之前,对相关对象使用createAcl()进行测试,会在acl_类中为相同类型的代理类显示一条新记录,并且操作成功完成 这似乎是错误的,代理应该是透明的,对吗?还是我遗漏了什么?我只是回答这个问题,因为我很难找到解决方案,这是我在谷歌上的第一个结果 是的,这是错误的,这是symfony2的一个已知错误 乔纳森·英格拉姆解决了
这似乎是错误的,代理应该是透明的,对吗?还是我遗漏了什么?我只是回答这个问题,因为我很难找到解决方案,这是我在谷歌上的第一个结果 是的,这是错误的,这是symfony2的一个已知错误 乔纳森·英格拉姆解决了这个问题,不久前写了一篇文章: 他创建了自己的对象标识检索策略来覆盖默认值,并在services.xml中注册了它(参见上面的文章)。事实上,这是一个非常简单和直接的解决方案,我有点惭愧我没有自己找到答案:)
在symfony2.1中,这不再是一个问题,请参阅:看起来我不是唯一一个有这个问题的人:也相关:为了完成这篇文章,我遇到了同样的问题,但是在ACL表中插入代理和实体的
$idFranquicia=UserSecurityIdentity::fromcount($franquicia)
。解决方案是直接使用具有类的完全限定名(FQN)的构造函数,如$idFranquicia=newusersecurityidentity($franquicia->getUsername(),'MiAlarma\SuperuserBundle\Entity\franquicia')