Symfony2 Formularereignisse - Dropdown-Listen

8

In einer Symfony2-Website versuche ich ein Formular mit 2 (oder 3) Dropdown-Listen mit einer Abhängigkeit wie Country & gt; Region & gt; Stadt. Und diese Stadt ist ein Feld des Elements, das ich mit dem Formular bearbeite. Die Idee ist, die Listen je nach Auswahl zu füllen.

Ich habe das Tutorial mit Formularereignissen hier verfolgt: Ссылка (basierend auf Web-on-the-Web .com /? p = 5)

Das Problem, das ich habe: Alles funktioniert, aber wenn ich das Formular zum Bearbeiten des Elements verwende, wird die Stadt korrekt ausgewählt (aus der DB), aber die Dropdown-Listen Land und Region sind bereits ausgefüllt und bleiben auf 'Wert auswählen'. Ich weiß nicht, ob es mit dem Tutorial so funktionieren sollte.

Die Frage: Wie kann ich diese Listen auswählen? Ich versuche, ein POST_SET_DATA-Ereignis hinzuzufügen, aber ich finde keine Möglichkeit, den Wert im Formularfeld auszuwählen.

Hier ist die Formularklasse: Ссылка (beachte, dass es statt der Stadt: Feld & gt; Thema und Thema ist ein Feld einer Lektion, die die Formularänderungen).

    
Thomas 19.06.2012, 19:16
quelle

1 Antwort

10

Ich hatte es fast. Wenn jemand anderes dies jemals benötigt, ist hier Folgendes hinzuzufügen, damit diese Lösung beim Bearbeiten eines vorhandenen Objekts perfekt funktioniert:

%Vor%

Bearbeiten: Seit symfony 2.1 wird das POST_SET_DATA-Ereignis aufgerufen, bevor die untergeordneten Elemente zum Formular hinzugefügt werden, wodurch alle get ('region') eine Ausnahme auslösen. Die Lösung besteht darin, dieses Feld in der POST_SET_DATA und nicht in der buildForm () zu erstellen:

%Vor%

Beachten Sie, dass Sie die $ factory zur 'Verwendung' des Abschlusses hinzufügen müssen, der das Ereignis behandelt:

%Vor%

Hier ist die ganze Formularklasse:

%Vor%     
Thomas 24.06.2012, 12:04
quelle

Tags und Links