我构建了一个多站点应用,具有以下要求:用户应该能够在该集合的不同网站上创建帐户,使用相同的电子邮件和用户名。
这是我做的:
第2点:
/**
* User
* The user class to work with, based on FOSUser one.
* To improve loose coupling, don't forget to link FOS\UserBundle\Model\UserInterface instead.
*
* @ORM\Table()
* @ORM\Entity(repositoryClass="LCH\UserBundle\Entity\UserRepository")
*
* @ORM\AttributeOverrides({
* @ORM\AttributeOverride(
* name="email",
* column=@ORM\Column(
* type="string",
* name="email",
* length=255,
* nullable=false,
* unique=false
* )
* ),
* @ORM\AttributeOverride(
* name="emailCanonical",
* column=@ORM\Column(
* type="string",
* name="email_canonical",
* length=255,
* nullable=false,
* unique=false
* )
* ),
* @ORM\AttributeOverride(
* name="username",
* column=@ORM\Column(
* type="string",
* name="username",
* length=255,
* nullable=false,
* unique=false
* )
* ),
* @ORM\AttributeOverride(
* name="usernameCanonical",
* column=@ORM\Column(
* type="string",
* name="username_canonical",
* length=255,
* nullable=false,
* unique=false
* )
* )
* })
*/
第3点
fos_user:
profile:
form:
validation_groups: [Default]
registration:
form:
validation_groups: [Default]
感谢this question获得了最后2分。
但是在表单验证方面,我仍然会触发错误,告诉我电子邮件地址已被使用。
我的最后一次尝试是通过在我的子包中重新定义来覆盖vendor / friendsofsymfony / user-bundle / Resources / config / storage-validation / orm.xml(其中有唯一约束)。它也没有工作,这只是一个绝望的"试试,因为如果结果有效,我就不会理解为什么要使用前面的点。
答案 0 :(得分:1)
我终于找到了问题,这在椅子和屏幕之间几乎一如既往。
config.yml之前
registration:
form:
type: LCH\UserBundle\Form\RegistrationType
profile:
form:
validation_groups: [Default] # Here you can also add your own groups if you have extra validation
registration:
form:
validation_groups: [Default] # Here you can also add your own groups if you have extra validation
registration.form键定义了两次......合并后......
profile:
form:
validation_groups: [Default]
registration:
form:
validation_groups: [Default]
type: LCH\UserBundle\Form\RegistrationType
......一切都在摇滚。