Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

Symfony Grundkurs

Den FormBuilder nutzen

Testen Sie unsere 2016 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Das eigentliche Formular wird mit Hilfe des FormBuilders im Controller erzeugt. Dazu müssen allerdings noch zusätzliche Dateien eingebunden werden.
06:42

Transkript

Dieses hier ist also der Ort, wo dann später mein Formular ausgegeben werden soll und dieses ist der Ort, an dem das Formular erzeugt wird. Das ist mein DefaultController aus meinem PlanBundle, und da habe ich jetzt schon eine neue Methode eingerichtet, und auch eine Route hin zu meiner View. Und innerhalb dieser Methode wird es jetzt dazu kommen, dass ich das Formular erzeuge. Was ich als erstes brauche, nachdem Symfony mit einem Formular ähnlich umgeht wie mit einem Objekt, ich brauche auf jeden Fall ein neues Plan-Objekt. Das heißt, ich sage: "$plan = new Plan()" und muss jetzt nichts weiter tun, denn meine Plan-Klasse existiert ja bereits. Das heißt, ich kann mich sofort um das Formular selbst kümmern. Und das Formular ist "$form =" und das werde ich jetzt mit einem kleinen Helfer befüllen, nämlich: einem FormBuilder. Das heißt, ich sage: "createFormBuilder" und das was er mir erzeugen soll, ist, "$plan". Damit er das tun kann, muss ich ihm jetzt die Felder ansagen, die er dann ausgeben soll, und das mache ich mit "add( ... )" und dann gebe ich ihm einerseits mal den Namen des Feldes ["name"] mit und andererseits den Feldtyp und dieses soll ein "TextType" werden. Das ist jetzt so die Kurzschreibweise für die Klasse, und eigentlich kann ich jetzt diese Zeile nehmen und -- Strg+C -- in die Zwischenablage tun und noch einmal ausgeben. So. Denn ich brauche das Ganze noch für meinen "ort", für mein "datum", allerdings ist das Datum jetzt kein "TextType", sondern ein "DateTimeType". Und dann muss ich noch einen Submit-Knopf befüllen und das ist jetzt ein Feld vom Typ "Submit". Das war es schon fast von den Feldern her. Das was ich jetzt zuletzt noch sagen muss, ist: "getForm()". Hier habe ich jetzt meine Variable mit den Feldern meines Formulars befüllt. Und was ich jetzt noch tun muss, ist, dass ich ganz hier oben dafür sorgen muss, dass die nötigen Dateien jetzt auch noch mit eingebunden werden. Die nötigen Dateien sind folgende: Ich brauche einerseits noch die Datei, die innerhalb von Symfony mit diesem "request" umgehen kann, und dann brauche ich für jeden einzelnen dieser Datentypen hier ebenfalls einen eigenen Eintrag. Das heißt, ich fange an mit "use Symfony", dann handelt es sich um eine Komponente und diese Komponente ist die "HttpFoundation" und innerhalb dieser HttpFoundation geht es um den "Request". Das ist jetzt aber nur die halbe Miete, denn jetzt kommen die ganzen "use"-Befehle für unsere Form-Komponente. Das heißt, es ist wieder "Symfony" und es geht um eine Komponente und innerhalb der Komponenten ist es die "Form"-Komponente. Dann ist der Ort "Extension" und "Core" und zu guter Letzt noch "Type" und dann muss ich sagen, welcher Type es ist. Aber diese ganze Schreiberei mache ich nur einmal, denn jetzt kann ich für jeden anderen Typ, den ich noch brauchen werde, diese Zeile einfach nehmen mit Strg+C und kann sie dann nochmal einfügen. Einmal für den "DateTimeType" und einmal für den "SubmitType". Das heißt, hier sage ich jetzt "DateTimeType" und hier unten geht es um den "SubmitType". So. Sieht so aus, als wäre ich jetzt zumindest mit dem Einbinden soweit fertig. Ich habe jetzt mein Formular. Ich habe alle nötigen Dateien eingebunden. Das was mir jetzt noch fehlt, ist die korrekte Ausgabe in meiner View. Denn bis jetzt habe ich noch gar keine Ausgabe meines Formulars in der View, sondern ich muss jetzt erst wieder mit Hilfe eines Arrays dafür sorgen, dass meine Formulardaten auch tatsächlich übernommen werden und das Vorgehen ist Ihnen jetzt schon fast bekannt. Ich sage "form=$form", nur jetzt kommt noch eine Spezialität dazu. Und zwar brauche ich jetzt noch etwas ganz Spezielles. Nämlich, ich muss jetzt noch sagen: "createView", sonst wird mir das, was ich brauche, nicht erzeugt werden. Okay, also, ich habe mein Formular, ich habe alles eingebaut, ich habe hier mein "createView", ich speicher nun meinen Controller und werde mir im Browser ansehen, ob alles so funktioniert hat, wie ich mir das vorstelle. Das heißt, ich öffne hier ein neues Browserfenster und wechsle jetzt zur Seite "neu". Und hier haben wir jetzt das Formular. Es ist optisch noch weit von schön entfernt. Ich merke auch, dass ich hier einen Save-Button zu viel habe. Aber prinzipiell ist die Funktionalität bereits gegeben. Ich habe zwei normale Textfelder, ich habe hier ein DateTime-Feld mit Dropdown-Zahlen. Die Funktionalität ist gegeben. Die Schönheit leidet noch etwas, aber auch das lässt sich noch einrichten.

Symfony Grundkurs

Steigen Sie in die moderne und flexible PHP-Entwicklung mit dem praktischen Framework ein.

2 Std. 35 min (34 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:18.01.2017

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!