在定义具有多个实现的抽象超类时,我无法使UniqueEntity检查起作用.
例如,在创建具有电子邮件字段和FacebookUser / TwitterUser的AbstractUser时,UniqueEntity检查仅是子类.不是父母.
有关如何在顶层应用唯一检查的任何想法?
编辑:我正在使用带有鉴别器列的连接表继承.见doctrine documentation.
最佳答案 在这种情况下,您可能需要编写自己的验证约束来检查唯一性.
从逻辑上讲,不清楚UniqueEntity约束在这种情况下应该如何应用.
是否应检查所有扩展类的属性的唯一性或仅检查当前使用的类?
由于UniqueEntity约束在表中查找属性的唯一性,因此默认行为不包含第二个变体.
因此,您不能对当前使用单表继承扩展的类使用约束.
关于问题评论:
FOSUserBundle在config/validaton.xml中不包含UniqueEntity约束.
…但是可以找到orm,mongodb,couchdb和推进,即config/orm/orm.xml.
FOSUserBundle使用@MappedSuperClass而不是连接表继承.