FOS Bundle如何允许重复的电子邮件ID插入?

时间:2015-10-20 06:49:59

标签: symfony email fosuserbundle

我已在我的项目中集成了FOS捆绑包。现在,我想允许多个用户使用相同的电子邮件,但FOS不允许这样做。

如何更改用户实现以允许该操作?

1 个答案:

答案 0 :(得分:1)

我的项目遇到了同样的问题。我解决了它覆盖了User实体上的一些Doctrine定义,它扩展了FOS' BaseUser

我这样做了:

/**
 * @ORM\Entity()
 * @ORM\Table(name="user", uniqueConstraints={
 *   @ORM\UniqueConstraint(name="user_U_1", columns={"username"})
 * })
 * @ORM\AttributeOverrides({
 *     @ORM\AttributeOverride(name="emailCanonical",
 *         column=@ORM\Column(
 *             name="email_canonical",
 *             type="string",
 *             length=255,
 *             nullable=true,
 *             unique=false
 *         )
 *     ),
 *     @ORM\AttributeOverride(name="usernameCanonical",
 *         column=@ORM\Column(
 *             name="username_canonical",
 *             type="string",
 *             length=255,
 *             nullable=true,
 *             unique=false
 *         )
 *     )
 * })
 */
class User extends BaseUser
{
    [...]
}

诀窍是重新定义email_canonical字段设置unique=false