Benutzerdefinierte Validierung in Symfony2

8

Ich bin neu bei symfony. Ich habe mich entschieden, mein Rad mit Symfony Version 2 zu bewegen.

In meinem Benutzerformular:

  • Ich möchte die Eindeutigkeit der E-Mail in der Datenbank überprüfen.
  • Ich möchte auch das Passwort bestätigen mit Passwort bestätigen Feld.
  • Ich könnte jede Hilfe im symfony2 doc finden.
channa ly 15.03.2011, 10:32
quelle

6 Antworten

24

Dieses Zeug brauchte eine Weile, um auch aufzufinden, also hier ist, was ich herausgefunden habe. Um ehrlich zu sein bin ich mir der getRoles () - Methode der User-Entity nicht wirklich sicher, aber das ist nur eine Testkonfiguration für mich. Solche Kontextelemente dienen ausschließlich der Übersichtlichkeit.

Hier sind einige hilfreiche Links zum Weiterlesen:

Ich habe das alles eingerichtet, um sicherzustellen, dass es auch als ein UserProvider für die Sicherheit funktioniert, da ich dachte, dass Sie das wahrscheinlich tun würden. Ich nahm auch an, dass Sie die E-Mail als Benutzername verwendeten, aber Sie müssen nicht. Sie könnten ein separates Feld für den Benutzernamen erstellen und diesen verwenden. Weitere Informationen finden Sie unter Sicherheit .

Die Entity (nur die wichtigen Teile; automatisch generierbare Getters / Setter werden weggelassen):     

%Vor%

Die Klasse Form:     

%Vor%

Der Controller:     

%Vor%

Relevanter Abschnitt von security.yml:

%Vor%     
Matthew 19.08.2011, 21:57
quelle
1

Sehen Sie sich Ссылка an, es gibt ein UserBundle mit dieser Funktionalität. Sie können auch Ссылка überprüfen, wo es einen Blogbeitrag zum Hinzufügen eines benutzerdefinierten Feldes, einer Einschränkung und eines Validators für Recaptcha gibt.

Thoose Ressourcen sollten Sie auf dem richtigen Weg beginnen, wenn Sie immer noch in Schwierigkeiten geraten Menschen sind im Allgemeinen hilfreich und freundlich auf IRC in # symfony-dev auf dem Freenode-Netzwerk. Auf Freenoce gibt es auch einen allgemeinen Kanal #symfony, wo du Fragen stellen kannst, wie man Zeug benutzt, wo # symfony-dev für die Entwicklung von Symfony2 Core ist.

Hoffentlich hilft Ihnen das, mit Ihrem Projekt voranzukommen.

    
Henrik Bjørnskov 15.03.2011 13:58
quelle
1

Ich denke, die Hauptsache, auf die Sie bei der Erstellung Ihres benutzerdefinierten Validators achten müssen, ist die in der getTargets () -Methode angegebene Konstante.

Wenn Sie

ändern %Vor%

zu:

%Vor%

Sie sollten in der Lage sein, auf alle Eigenschaften der Entität und nicht nur auf eine einzige Eigenschaft zuzugreifen.

Hinweis: Wenn Sie Annotationen zum Definieren Ihrer Integritätsbedingungen verwenden, müssen Sie nun die Annotation, die Ihren Validator definiert, an den Anfang der Klasse verschieben, da sie jetzt für die gesamte Entität und nicht nur für die einzelne Eigenschaft gilt.

    
Peter Johnson 12.05.2011 15:53
quelle
0

Sie sollten alles, was Sie brauchen, aus den Dokumenten beziehen können. Insbesondere die Einschränkungen , die Informationen zur E-Mail-Überprüfung enthalten. Es gibt auch Dokumentation zum Schreiben von benutzerdefinierten Validatoren .

    
Blair McMillan 15.03.2011 12:12
quelle
0

Ich habe alles wie auf Ссылка

gemacht

Meine Konfiguration:

%Vor%

hat versucht, es mit

zu verwenden %Vor%

aber es wird nicht ausgelöst?

    
umpirsky 15.05.2011 07:45
quelle
-1

eindeutige E-Mail aus der Datenbank

validation.yml

Dashboard \ ArticleBundle \ Entity \ Artikel:     Einschränkungen:         # - Symfony \ Bridge \ Doctrine \ Validator \ Constraints \ UniqueEntity: senderEmail         - Symfony \ Bridge \ Doctrine \ Validator \ Constraints \ UniqueEntity: {fields: senderEmail, Nachricht: Diese Email existiert bereits}

Passwort mit Passwort bestätigen

%Vor%     
jaydipsinh 10.07.2013 13:16
quelle

Tags und Links