Удалить группу проверки из родительской формы

Я использую 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.

Кто-нибудь знает, как это решить?


person Thomas K    schedule 01.10.2012    source источник


Ответы (1)


Оказывается, вы можете настроить группы проверки для форм FOSUserBundle в config.yml:

fos_user:
    ....
    registration:
        form:
            validation_groups:  [default, registration_mod]
            ....
person Thomas K    schedule 01.10.2012