doctrine-orm - Doctrine 2 代理类破坏了 Symfony2 ACL

标签 doctrine-orm symfony acl proxy-classes

当尝试在具有由 init:acl 生成的 acl_classes 表中的现有条目的实体上运行 findAcl() 时,我得到一个 AclNotFoundException。

在调用 findAcl() 之前对有问题的对象使用 createAcl() 进行测试会显示 acl_classes 中相同类型的代理类的新记录,并且操作成功完成。

这似乎是错误的,代理应该是透明的,还是我遗漏了什么?

最佳答案

我只是在回答这个问题,因为我很难找到解决方案,这是我在 google 中的第一个结果。

是的,这是错误的,它是 symfony2 的一个已知错误。

Jonathan Ingram 解决了这个问题,并在不久前写了一篇关于它的帖子:
http://jonathaningram.com.au/2012/01/13/overriding-the-objectidentityretrievalstrategy-to-check-if-a-domain-object-is-a-doctrine-proxy/

他创建了自己的对象身份检索策略来覆盖默认值,并将其注册到 services.xml(参见上面的帖子)。实际上,这是一个非常简单明了的解决方案,我有点惭愧我自己没有弄清楚:)

在 symfony2.1 中这不再是问题,请参阅:https://github.com/symfony/symfony/pull/3826

关于doctrine-orm - Doctrine 2 代理类破坏了 Symfony2 ACL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7476552/

相关文章:

php - Symfony 5 - make :entity 仅支持属性映射

php - Symfony SQLSTATE[HY000] [2002] 1and1 服务器拒绝连接

php - Twig:选择某些 block 并渲染它们

AngularJS ACL View 级别示例

java - 访问控制-j2ee

php - 在一个学说中插入多个关联数组 native insert() 命令

annotations - 故障排除 "[Syntax Error] Expected PlainValue, got ' )'"

doctrine-orm - JMS 反序列化对多关系不会通过 orphanremoval 删除

Mysql - 使两列的组合唯一

php - CakePHP 中的 Acl - 删除此功能