0

我使用 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 内部服务器错误”之类的消息。

用户不知道他做错了什么......那就是问题......

先感谢您!

4

1 回答 1

1

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

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

FOSUserBundle 的验证 xml 配置文件可以在这里找到。


编辑

由于电子邮件属性的 FOSUserBundle v1.3.x UniqueEntity验证已包含在orm.xml中。

于 2013-06-29T11:17:28.750 回答