Entfernen / Ersetzen Sie das Feld Benutzername durch E-Mail mit FOSUserBundle in Symfony2 / Symfony3
Ich will nur E-Mail als Modus der Anmeldung, ich will keine haben, Benutzername. Ist es möglich mit symfony2/symfony3 und FOSUserbundle?
Lese ich hier http://groups.google.com/group/symfony2/browse_thread/thread/92ac92eb18b423fe
Aber dann bin ich stecken mit zwei Verstöße gegen die Vorgaben.
Problem ist, wenn der Benutzer verlässt die E-Mail-Adresse leer ist, bekomme ich zwei Einschränkung
Verletzungen:
- Bitte geben Sie einen Benutzernamen
- Bitte geben Sie eine E-Mail
Gibt es eine Möglichkeit zum deaktivieren der Validierung für ein bestimmtes Feld, oder einen besseren Weg, um
entfernen Sie ein Feld aus dem Formular zusammen?
InformationsquelleAutor der Frage user825904 | 2012-01-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eine komplette übersicht über das, was getan werden muss, um
Hier ist die komplette übersicht, was getan werden muss. Ich habe verschiedene Quellen gefunden, die hier und da am Ende von diesem post.
1. Überschreiben setter in
Acme\UserBundle\Entity\User
2. Entfernen Sie das Feld Benutzername aus dem Formular geben Sie
(in beiden
RegistrationFormType
undProfileFormType
)3. Validierung Einschränkungen
Siehe @nurikabe, die wir haben, um loszuwerden, die Validierung Einschränkungen, welche durch
FOSUserBundle
und erstellen unsere eigenen. Dies bedeutet, dass wir neu aufbauen müssen alle Einschränkungen, die Sie zuvor erstellt inFOSUserBundle
und entfernen Sie diejenigen, die Sie betreffen, dieusername
Feld. Die neue Validierung Gruppen, die wir erstellen sindAcmeRegistration
undAcmeProfile
. Wir sind daher vollständig überschreiben die bereitgestellte durch dieFOSUserBundle
.3.ein. Update-config-Datei in
Acme\UserBundle\Resources\config\config.yml
3.b. Erstellen von Validierungs-Datei
Acme\UserBundle\Resources\config\validation.yml
Das ist die lange bit:
4. Ende
Das ist es! Sie sollten gut zu gehen!
Unterlagen für diesen Beitrag:
InformationsquelleAutor der Antwort Mick
War ich in der Lage, dies zu tun durch das überschreiben sowohl die Registrierung und Profil-form geben detaillierte hier und entfernen das Feld Benutzername
Zusammen mit überschreiben der setEmail Methode in meinem konkreten Benutzer Klasse:
InformationsquelleAutor der Antwort Ben_hawk
Als Michael weist darauf hin, dies kann gelöst werden mit einem benutzerdefinierten Gruppe Validierung. Zum Beispiel:
Dann in Ihrer Person (wie definiert durch
user_class: App\UserBundle\Entity\User
) können Sie die AppRegistration Gruppe:Dies ist, was ich am Ende tun, nach dem posting, die Antwort auf das Symfony2-thread.
Sehen http://symfony.com/doc/2.0/book/validation.html#validation-groups für volle details.
InformationsquelleAutor der Antwort nurikabe
Als der Sf 2.3, schnelle Abhilfeist der Benutzername die Zeichenfolge in der _construct der Klasse Benutzer, erstreckt sich BaseUser.
Diese Weise wird der validator nicht auslösen, die Verletzung. Aber vergessen Sie nicht die E-Mail der Benutzername geschrieben von Patt.
Müssen Sie möglicherweise überprüfen Sie andere Dateien für Verweise auf Benutzer:der Benutzername und das entsprechend ändern.
InformationsquelleAutor der Antwort iambray
Haben Sie versucht, customizing der Validierung?
Um dies zu tun, müssen Sie Ihr eigenes bundle Erben von der UserBundle, und dann kopieren/anpassen Resources/config/validation.xml. Plus, Sie müssen die validation_groups in der config.yml, um Ihre benutzerdefinierte Validierung.
InformationsquelleAutor der Antwort Michael Sauter
Anstelle von Validierung einbauen, die ich lieber ersetzen RegistrationFormHandler# - Prozess, genauer gesagt, das hinzufügen neuer Methode processExtended(zum Beispiel), die eine Kopie der original-Methode, und verwenden Sie ut in RegistrationController. (Überschreiben: https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/doc/index.md#next-steps)
Bevor ich bind registrieren form ich Benutzername zum Beispiel "leer":
Warum? Ich bevorzuge user FOSUserBundle Validierungs-Regeln. Cuz, wenn ich ersetzen Prüfgruppe in der config.yml für die Registrierung Formular brauche ich, um zu wiederholen, Validierungs-Regeln für Benutzer in meinem eigenen user-Entität.
InformationsquelleAutor der Antwort ZloyPotroh
Wenn keiner von Ihnen arbeitet, eine quick-and-dirty-Lösung wäre
InformationsquelleAutor der Antwort getvivekv