我已在我的项目中集成了FOS捆绑包。现在,我想允许多个用户使用相同的电子邮件,但FOS不允许这样做。
如何更改用户实现以允许该操作?
答案 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