Greifen Sie auf die aktuelle Entität im benutzerdefinierten Symfony2-Constraint-Validator zu

8

Gibt es eine Möglichkeit, auf die Entität der Eigenschaft zuzugreifen, die gerade in einem benutzerdefinierten Constraint-Validator validiert wird, und wenn ja, wie? Soweit ich sehen kann, habe ich nur Zugriff auf den Wert (und alle Dienste, die ich wählen könnte, natürlich zu injizieren).

    
Eirik A. Johansen 03.04.2013, 11:09
quelle

4 Antworten

5

Ich hatte das auch nötig. Hier finden Sie ein vollständiges Beispiel:

Die Entität:

%Vor%

Die Einschränkung:

%Vor%

Der Constraint-Validator:

%Vor%

Und die Erklärung als Dienst:

%Vor%

Der Exit-Vardump, den ich gesetzt habe, bringt mir den Namen der Entity-Klasse, es funktioniert!

    
Sébastien 24.12.2014, 11:16
quelle
7

Ja, es gibt einen Weg. Validierer für Klasseneinschränkungen hat eine vollständige Entität im Gültigkeitsbereich.

    
gatisl 03.04.2013 11:25
quelle
7

Falls Sie über einen Property-Validator verfügen, können Sie auch über Validator über ExecutionContext auf das validierte Objekt zugreifen:

Ссылка

%Vor%     
ruslanix.com 27.06.2016 09:34
quelle
0

Ey, nun, es hängt davon ab, wie du die Entität validierst. Zum Beispiel validiere ich meine Entität durch ein Formular. Um die Entität in den ConstraintValidator zu bekommen, muss ich nur das Kontextstammverzeichnis abrufen und die Daten aus meinem Formular abrufen:

%Vor%     
AzuraStar 13.06.2017 10:54
quelle

Tags und Links