Я использую 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
.
Кто-нибудь знает, как это решить?