Fosuserbundle 注册验证不起作用

Fosuserbundle register validation not work

当我使用现有电子邮件注册时,在 registerAction RegisterController $form->isValid() returns true 尽管 Fosuserbundle 中存在约束但我收到 DBALException(执行时发生异常 'INSERT INTO … ').

我创建了一个继承 FOSUserBundle 的包,MyUser 实体继承了 BaseUser,并且验证了 RegistrationFormType。

您应该使用验证在电子邮件字段上添加 UniqueEntity 约束,您可以将其直接添加到您的实体文件(或使用 yml 文件,如您所愿):

http://symfony.com/doc/current/reference/constraints/UniqueEntity.html

通过验证,将在调用 $form->isValid() 时检查该字段,如果电子邮件已存在于您的数据库中,则会 return 出错。