Hinzufügen eines feldspezifischen Fehlers vom Controller in Symfony2

Lesezeit: 1 Minute

Benutzer-Avatar
MrGlass

Ich habe eine komplexe Validierung mit meinem Symfony-Formular, und ich muss in der Lage sein, einem bestimmten Feld meines Controllers einen Fehler zuzuweisen. Im Moment habe ich globale Fehler, die wie folgt funktionieren:

$error = new formerror("There is an error with the form");
$form->addError($error);

Aber das erzeugt einen globalen Fehler, nicht einen, der an ein bestimmtes Feld gebunden ist.

Gibt es eine Möglichkeit, einen Fehler in einem bestimmten Feld von meinem Controller auszugeben?

Benutzer-Avatar
MrGlass

Dank etwas Hilfe über IRC (danke @fkrauthan!) kam ich zu einer Antwort.

Jedes Feld in SF2 ist eigentlich eine Instanz des Formulars. Was Sie tun müssen, ist, auf das Formularobjekt des Felds zuzugreifen und dann einen Fehler hinzuzufügen. Glücklicherweise bietet Symfony eine Methode, um ein eingebettetes Formular/Feld zu erhalten.

Hier ist mein Code:

$error = new FormError("There is an error with the field");
$form->get('field')->addError($error);

Wie einige Leute darauf hingewiesen haben, müssen Sie die Klasse FormError oben in Ihre Datei einfügen:
use Symfony\Component\Form\FormError;

  • Stapelüberlauf lässt Sie Ihre eigene Antwort in den ersten 2 Tagen nicht akzeptieren.

    – MrGlass

    29. August 2012 um 11:58 Uhr

  • Was muss ich oben als USE angeben, um die Formerror-Klasse richtig verwenden zu können?

    – Matt Welander

    31. Juli 2013 um 14:33 Uhr

  • Sie müssen die ‘use’-Anweisung nicht wirklich verwenden. Sie müssen nur den vollständigen Qualifizierer nach neu bestehen. $error = new \Symfony\Component\Form\FormError(“Es gibt einen Fehler mit dem Feld”);

    – ctatro85

    2. Dezember 2014 um 18:34 Uhr


  • Das gilt auch 2019 für Symfony 4

    – Jonathan Holvey

    12. August 2019 um 2:05 Uhr

  • @Chris Der Controller wird fortgesetzt, aber das Formular sollte jetzt als ungültig markiert werden.

    – MrGlass

    4. Februar 2020 um 18:58 Uhr

1129200cookie-checkHinzufügen eines feldspezifischen Fehlers vom Controller in Symfony2

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy