バンドルによって提供されるものを拡張するカスタム登録フォームで 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
。
これを解決する方法を知っている人はいますか?