i.a*_*iel 5 symfony doctrine-orm
当定义具有多个实现的抽象超类时,我无法使 UniqueEntity 检查起作用。
例如,当创建具有电子邮件字段和 FacebookUser/TwitterUser 的 AbstractUser 时,UniqueEntity 仅检查子类。不是父辈的。
关于如何在顶层应用唯一检查有什么想法吗?
编辑:我将joined表继承与鉴别器列一起使用。请参阅学说文档。
在这种情况下,您可能需要编写自己的验证约束来检查唯一性。
从逻辑上讲,尚不清楚 UniqueEntity 约束在这种情况下如何应用。是否应检查所有扩展类的属性唯一性,还是仅检查当前使用的类?
由于 UniqueEntity 约束会查找表中属性的唯一性,因此默认行为不涵盖第二个变体。因此,当前不能对通过单表继承扩展的类使用约束。
关于问题评论:
FOSUserBundle 不包含config/validaton.xml中的 UniqueEntity 约束。
...但可以在config/orm/orm.xml中找到 orm、mongodb、couchdb 和 propel ie 。
FOSUserBundle 使用 @MappedSuperClass 而不是连接表继承。