从父表单中删除验证组

时间:2012-10-01 14:19:03

标签: php symfony symfony-2.1

我将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}}组。

有谁知道如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

事实证明,您可以在config.yml中配置FOSUserBundle表单的验证组:

fos_user:
    ....
    registration:
        form:
            validation_groups:  [default, registration_mod]
            ....