2012-09-05 162 views
1

我正在使用FOSUserBundle。 在我的项目中,我创建了自己的UserBundle并覆盖了控制器,表单和处理程序。 现在,当用户尝试使用现有电子邮件进行注册时,该网站会崩溃(电子邮件对于教义而言是唯一的)。似乎没有进行验证。 我以为会有一些验证,因为我有我的validation.yml:验证fosuserbundle注册表格

YOP\UserBundle\Entity\User: 
    constraints: 
    - Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity: email 
    properties: 
    email: 
     - Email: ~ 

如何来验证未在电子邮件领域取得的? 我怎样才能确保我的验证约束被考虑在内?

PS:validation.yml文件不在我的UserBundle中,是一个问题吗?

编辑:

我UserBundle的代码可以here 我不明白为什么没有做了验证...

回答

6

解决的问题:具有在同一个包含我的用户实体之一validation.yml文件

  • ,并指着我的用户实体
  • 添加 “注册” 验证组到我的领域

validation.yml:

YOP\YourOwnPoetBundle\Entity\User: 
    constraints: 
    - Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity: email 
    properties: 
    email: 
     - Email: { groups: [Registration] } 
    plainPassword: 
     - MinLength: { limit: 5, message: "Your password must have at least {{ limit }} characters" } 
    name: 
     - NotBlank: { groups: [Registration] } 
    familyName: 
     - NotBlank: { groups: [Registration] } 
    sex: 
     - Choice: { choices: [1, 2], groups: [Registration] } 
    birthdate: 
     - NotNull: { groups: [Registration] } 
    city: 
     - NotBlank: { groups: [Registration] } 
    howDidYouHear: 
     - Choice: { choices: [1, 2, 3, 4, 5, 6, 7, 8], groups: [Registration] } 
-1

validation.yml应该在你的用户捆绑。
/app/config/config.yml应更新如下:

validation:  { enabled: true, enable_annotations: false } 
+0

感谢您的回答,但这没有任何区别。我如何告诉Symfony2使用validation.yml文件? –