Wie füge ich ein Autocomplete-Feld in Forms Symfony2 hinzu?

8

Tatsächlich kann ich einem Benutzer in der Editieraufgabe eine Aufgabe zuweisen. Ich zeige eine Dropdown-Liste aller Benutzer im System an, wenn ich eine Aufgabe bearbeite. Nun, ich würde in der Lage sein, eine Texteingabe mit Autovervollständigung für den Benutzer anzuzeigen, und in der Lage sein, Benutzer hinzuzufügen, wenn es nicht existiert.

Wie geht das?

Vielen Dank im Voraus.

    
gperriard 05.06.2012, 09:25
quelle

1 Antwort

19

Zwei Dinge, die Sie tun müssen:

1) Erstellen Sie einen Datentransformer

Sie können ein Eingabefeld anstelle des Standard-Dropdown-Menüs für die verknüpfte Entität verwenden.

Der Datentransformer transformiert im Grunde Ihre Eingabe (in Ihrem Fall eine Benutzernamen-Zeichenfolge) in ein tatsächliches Benutzerobjekt, das Sie mit Ihrer Entität speichern können. Dadurch können Sie anstelle des Standard-Dropdown-Menüs für die verknüpfte Entität ein Eingabefeld definieren. Schauen Sie sich die Dokumentation an, es ist ziemlich einfach.

2) Erstellen Sie die Ajax-Autocomplete

Dies kann mit jeder gewünschten Bibliothek (jQuery, Prototype usw.) auf der Clientseite erfolgen, und serverseitig behandeln Sie dies in Ihrer Controller-Aktion und antworten entweder mit JSON oder einer gerenderten Vorlage. Dafür gibt es viele Tutorials. Das Ajax-Ergebnis könnte eine Verknüpfung enthalten, um einen neuen Benutzer zu erstellen, wenn keiner gefunden wird.

Der Data Transformer ist das, worauf Sie sich konzentrieren müssen, und ich würde das schaffen, bevor ich an der Benutzeroberfläche arbeite.

    
cvaldemar 05.06.2012, 11:37
quelle

Tags und Links