Symfony FosUserBundle-唯一的电子邮件、用户名和更多字段

Symfony FosUserBundle-唯一的电子邮件、用户名和更多字段,symfony,entity,symfony-forms,fosuserbundle,unique-constraint,Symfony,Entity,Symfony Forms,Fosuserbundle,Unique Constraint,我使用FosUserBundle,我的完整性有问题 问题: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'Example' for key 'UNIQ_1483A5E94CE6C7A4' -- UNIQ_1483A5E94CE6C7A4 == username field /** * @ORM\Entity * @ORM\Table() * @UniqueEntity("username")

我使用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
{
实体:

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内部服务器错误”的消息

用户不知道他做错了什么。。。这就是问题所在


提前感谢您

由于您的bundle使用bundle继承,而FOSUserBundle使用xml配置进行验证—此xml配置可能用于您的注释

您应该将文件
config/validation/orm.xml
复制到您的用户包中,并在其中添加Uniquentity约束

可以找到FOSUserBundle的验证xml配置文件


编辑


由于FOSUserBundle v1.3.xuniquentity中已包含电子邮件属性的验证。

我将此约束用于文件Bundle\config\validation.yml,因为config\validation\orm.xml被忽略。。。不起作用:(也使用yaml,但我收到的是重复的错误消息,而不是覆盖…encodes:fosuserbundle@2.0-dev已使电子邮件具有唯一性,正如我所看到的那样。这是正确的-较新的电子邮件已经包含Uniquentity验证。你知道这一点吗?