我将FOSUserBundle与自定义注册表单一起使用,该表单扩展了捆绑包提供的注册表单。我想覆盖验证,因此它不检查用户名(我生成它)。我已经读过这可以通过使用验证组来实现。
这些是我表格的相关部分:
public function buildForm(FormBuilderInterface $builder, array $options)
{
parent::buildForm($builder, $options);
...
$builder->remove('username');
...
}
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'Ysu\Bundle\SiteBundle\Entity\User',
'validation_groups' => array('my-registration-group'),
'cascade_validation' => true
));
}
...
但是,仍然使用捆绑包提供的验证文件验证用户名。我发现$options
(数组)包含一个数组validation_groups
,而数组$options
又包含“注册”组,因此该字段仍然有效。但是,我不知道如何删除它。如果我在将parent::buildForm
传递给Registration
之前将其取消设置,它仍将包含{{1}}组。
有谁知道如何解决这个问题?
答案 0 :(得分:0)
事实证明,您可以在config.yml中配置FOSUserBundle表单的验证组:
fos_user:
....
registration:
form:
validation_groups: [default, registration_mod]
....