0

我使用FosUserBundle,並且我的完整性存在問題。FosUserBundle - 唯一的電子郵件,用戶名和更多字段

問題:

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'Example' for key 'UNIQ_1483A5E94CE6C7A4' 
-- UNIQ_1483A5E94CE6C7A4 == username field 

實體:

/** 
* @ORM\Entity 
* @ORM\Table() 
* @UniqueEntity("username") 
* @UniqueEntity("username_canonical") 
* @UniqueEntity("email") 
* @UniqueEntity("email_canonical") 
* @UniqueEntity("opta") 
* @UniqueEntity("optb") 
* @UniqueEntity("optc") 
*/ 
class User extends BaseUser 
{ 

程序應該向用戶顯示錯誤消息。

此刻,我收到每個app_dev.php的錯誤消息。

用戶收到一條消息,如「服務器返回了」500內部服務器錯誤「。」。

用戶不知道他做錯了...那是問題...

預先感謝您!

+0

你有沒有想過這個? –

回答

1

由於您的包使用包繼承,並且FOSUserBundle使用xml配置進行驗證 - 此xml配置可能用於您的註釋。

您應該將文件config/validation/orm.xml複製到您的用戶包並在其中添加UniqueEntity約束。

FOSUserBundle的驗證xml配置文件可以在here找到。


編輯

由於FOSU​​serBundle v1.3.x 的電子郵件財產UniqueEntity驗證已經包含在orm.xml

+0

我用這個約束http://pastebin.com/3vw0UKUV與文件Bundle \ config \ validation.yml因爲配置\驗證\ orm.xml被忽略... 沒有工作:( – Patrick

+0

也使用yaml,但am得到重複的錯誤消息,而不是覆蓋... – encodes

+0

編碼:fosuserbundle @ 2.0-dev已經使電子郵件獨特,因爲我已經看到。 –

相關問題