如何用fosuserbundle验证用户名,密码和其他一个字段?

时间:2017-07-27 16:44:42

标签: symfony fosuserbundle

我需要在登录三个字段中验证,以便用户可以进入应用程序,我只需要一个小例子,如何做或更好仍然在哪里是真正负责在fosuserbundle中验证的方法,按顺序能够覆盖它

1 个答案:

答案 0 :(得分:1)

您需要创建一个新的验证组,覆盖FOSUser的形式并在其中应用您的新验证组。

override FOSUser form

如果您的对象利用了验证组,则需要指定表单应使用的验证组:

$form = $this->createFormBuilder($users, array(
    'validation_groups' => array('registration'),
))->add(...);

如果您正在创建表单类(一个好的做法),那么您需要将以下内容添加到configureOptions()方法中:

use Symfony\Component\OptionsResolver\OptionsResolver;
public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults(array(
            'validation_groups' => array('registration'),
        ));
    }

https://symfony.com/doc/current/validation/groups.html

请注意,FOSUser使用XML格式的验证说明,您无法覆盖验证文件,您只能创建新的验证组并使用自己的表单