2012-09-05 214 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文件? –