我正在尝试使用 Sonata用户捆绑包并扩展用户实体以添加一些额外的关系。 我创建了自己的ApplicationSonataUserBundle子包,如下所示:http://sonata-project.org/bundles/user/master/doc/reference/installation.html 除了表单验证之外,一切正常。 我查看了:http://symfony.com/doc/current/cookbook/bundles/override.html#override-validation
如果我理解正确的话,我只有在想要覆盖一些约束时才需要这样做。但我希望我的实体继承FOS用户软件包中设置的所有约束(由Sonata用户软件包扩展,由我自己的ApplicationSonataUserBundle扩展)
当我打印我的注册表单时,似乎会忽略约束....没有对emailCanonical等进行唯一检查,密码长度或其他任何内容。
我的解决方案是为扩展实体创建一个全新的validation.xml,并将其放在我的ApplicationSonataUserBundle中。这是正确的还是有任何其他方式我可以继承扩展的 Application \ Sonata \ UserBundle \ Entity \ User 中的约束,这些约束应该从 FOS \ UserBundle \ Model \ User <继承约束/ strong>?
TIA。
答案 0 :(得分:0)
我认为您应该将新规则分配给新的验证组,然后使用config.yml文件将验证组添加到默认值,例如
sonata_user:
profile:
form:
validation_groups: [CustomGroup, Profile, Default]
但是,我无法让这个工作(这就是为什么我找到了这个帖子)...如果你有更好的运气,请告诉我!
顺便说一下,我已将此问题作为一个单独的问题发布: Adding customised validation rules to SonataUserBundle
如果有答案,我也会在这里尝试更新。