2012-06-05 10 views
8

Eigentlich 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 nicht vorhanden ist.Wie fügt man ein Autocomplete-Feld in Formularen Symfony2 hinzu?

Wie geht das?

Vielen Dank im Voraus.

Antwort

19

Zwei Dinge müssen Sie tun:

1)

hich eine Datentransformer erstellen lassen Sie ein Eingabefeld verwenden, anstatt die Standard-Dropdown-Liste der verknüpften Entität.

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. Werfen Sie einen Blick auf the documentation, es ist ziemlich einfach. Erstellen

2), um die Ajax Autocomplete

Diese jede Bibliothek kann getan werden, indem Sie (jQuery, Prototype, etc.) auf der Client-Seite und Server-Seite Sie behandeln diese in Ihrer Controller-Aktion und antwortet mit entweder JSON oder eine gerenderte Vorlage. Dafür gibt es viele Tutorials. Das Ajax-Ergebnis könnte einen Link enthalten, um einen neuen Benutzer zu erstellen, wenn keiner gefunden wird.

Der Datentransformer ist das, worauf Sie sich konzentrieren müssen, und ich würde das vor der Arbeit an der Benutzeroberfläche arbeiten.

Verwandte Themen