Ich baute eine Multisite-App mit folgenden Anforderungen: Benutzer sollte in der Lage sein, Konten auf verschiedenen Websites der Sammlung, mit derselben E-Mail-Adresse und Benutzernamen zu erstellen.FOS User Override eindeutige Beschränkung auf Benutzerspeicher
Hier ist, was ich getan habe:
- Erstellen UserBundle mit FOSUserBundle als Mutter
- AttributeOverride hinzufügen auf Benutzernamen, usernameCanonical, E-Mail und emailCanonical Felder aus.
- Deaktivieren Sie die anfänglichen Validierungsgruppen (Registrierung und Profil) durch Überschreiben von Validierungsgruppen.
Punkt 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",
* [email protected]\Column(
* type="string",
* name="email",
* length=255,
* nullable=false,
* unique=false
* )
* ),
* @ORM\AttributeOverride(
* name="emailCanonical",
* [email protected]\Column(
* type="string",
* name="email_canonical",
* length=255,
* nullable=false,
* unique=false
* )
* ),
* @ORM\AttributeOverride(
* name="username",
* [email protected]\Column(
* type="string",
* name="username",
* length=255,
* nullable=false,
* unique=false
* )
* ),
* @ORM\AttributeOverride(
* name="usernameCanonical",
* [email protected]\Column(
* type="string",
* name="username_canonical",
* length=255,
* nullable=false,
* unique=false
* )
* )
* })
*/
Punkt 3
fos_user:
profile:
form:
validation_groups: [Default]
registration:
form:
validation_groups: [Default]
letzten 2 Punkte dank this question erreicht.
Aber auf Formular Validierung, habe ich immer noch Fehler ausgelöst, mir zu sagen, dass E-Mail-Adresse bereits verwendet wird.
Mein letzter Versuch wurde versucht, Verkäufer/friendsofsymfony/user-Bundle/Ressourcen/config/storage-Validierung/orm.xml außer Kraft zu setzen, (wo eindeutige Einschränkung liegt), indem sie es in meinem Kind Bündel neu zu definieren. Es hat auch nicht funktioniert, und das war nur ein "verzweifelter" Versuch, denn wenn es funktionierte, hätte ich nicht verstanden, warum ich vorhergehende Punkte verwende.
Perfekt! Ich hatte die gleiche Situation und diese Lösung funktioniert wie ein Charme für mich auch! – Ren