CakePHP & DIEVOLUTION Blog
CakePHP 1.2 - der neue Form Helper
Da leider noch keine Anleitung zu CakePHP 1.2 existiert (bzw. veröffentlicht wurde), hier eine kleine Anleitung, wie ihr den Form-Helper nutzen könnt, um eure Formulare noch kompakter zu gestalten und wo die Stolpersteine für Umsteiger liegen.
Was ist neu im neuen Form Helper?
- Geänderte Art des Formularaufbaus
- Automatische Label Generierung
- Alle Form-Elemente sind nun im Form-Helper
Gehen wir die Punkte doch einfach mal nacheinander durch.
Geänderte Art des Formularaufbaus
War es im alten HTML Helper noch nötig, mit $html->input zu arbeiten und man viel Arbeit hatte, das Formular schön herzurichten, ist dies mit der neuen Version alles einfacher geworden.
Ein Formular wird nun mit
gestartet. Aber hier liegt auch schon der erste Stolperstein. Eigentlich müsste ein so erstelltes form-Tag die “action” auf das Dokument legen, wo es erstellt wurde. Hier haben sich die Cake Entwickler aber anders entschieden und so entsteht aus dem PHP Code oben folgender HTML Code:
-
<form id=“ModelAddForm” method=“post” action=“/models/add”>
Ohne weitere Parameter linkt Cake also automatisch auf die Aktion “add”. Dies wollen wir aber in den meisten Fällen nicht, daher verwendet man meistens folgendes:
In das Array können auch weitere Angaben wie ’style’ o.ä. hinzugefügt werden.
Automatische Label Generierung
Eine weitere Neuerung ist das Hinzufügen von Labels bei Einsatz von $form->input. Hier geschieht folgendes:
Diese einfache Anweisung ist mächtiger als es zunächst scheint. Zunächst einmal wird außer dem Input Feld ein “Label” Feld erstellt, welches den Namen “Username” beinhaltet, das erste Zeichen wird also groß geschrieben. Das Input Feld selbst kann im Controller durch $this->data[’Model’][’username’] abgerufen werden. Hier übernimmt das Formular automatisch das Model, wenn selbiges im $form->create gesetzt wurde.
Möchte man nun ein anderes Model im Formular haben, kommt die neue Model.Feldname Regel zum Einsatz, denn Model/Feldname ist inzwischen veraltet.
Hier habe ich auch gleich noch mitgegeben, dass kein Labelfeld gerendert werden soll. Dasselbe geht übrigens auch mit array(’div’=>false), welches um jedes Formularfeld gelegt wird. Dies ist vor allem nützlich, wenn man inline Input Felder braucht, zum Beispiel bei der oft in Deutschland verwendeten Schreibweise PLZ / Ort. Dies sähe in Cake wie folgt aus:
Das Label kann somit auch, wie oben gezeigt, dynamisch verändert werden, was gerade bei englischen SQL Spaltennamen ein Segen ist.
Kommen wir zum letzten Stolperstein:
Alle Form-Elemente sind nun im Form-Helper
Hier ist die größte Änderung. Alle Formular Elemente sind nun im Form-Helper vertreten, $html->input ist veraltet und wird vom DEBUG als Warnung gezeigt, $html->submit ist schon gar nicht mehr verteten. Wer also mit dem Gedanken spielt seine 1.1er Cake Anwendung auf 1.2 zu portieren sollte ein wenig Zeit mitbringen, um alle Views entsprechend einzustellen.
Damit solls auch erstmal gut sein mit den Stolpersteinchen und Änderungen im neuen Cake 1.2. Wer mehr über den Form Helper und die anderen 1.2 helper erfahren will, dem sei noch diese Seite ans Herz gelegt. Hier findet sich zu jedem Helper noch ein Beispiel.
Veröffentlicht am Freitag, den 28. September 2007 um 15:41 Uhr veröffentlicht
Du kannst einen Kommentar schreiben, oder einen Trackback auf deiner Seite einrichten.
3 Reaktionen zu “CakePHP 1.2 - der neue Form Helper”
-
Klaus
Am 8. Oktober 2007 um 18:34 UhrNun wünschen wir uns mal von Cake auch eine automatische Label-Generierung bei password, textarea…
Übrigens: Bei Deinen Code-Beispielen fehlt bei allen array-Angaben eine schließende Klammer!
Klaus
-
h0nIg
Am 28. November 2007 um 01:53 UhrFalsch! es existiert eine temporäre doc:
-
Am 28. November 2007 um 10:01 Uhr
Richtig! Aber die Tempdocs gibt es erst seit Mitte November, der Beitrag ist von Ende September

Auf einen Blick
Archiv
- November 2008
- Oktober 2008
- August 2008
- Juli 2008
- Juni 2008
- Mai 2008
- April 2008
- März 2008
- Februar 2008
- Januar 2008
- Dezember 2007
- November 2007
- Oktober 2007
- September 2007
- August 2007
- Juli 2007
- Juni 2007
- Mai 2007
- April 2007
Kategorien
- Allgemein (72)
- Cake vs Rails (3)
- CakePHP (42)
- Meinung (16)
- Projekt (6)
- Rails (6)
- Tipps (28)
- Typo3 (4)
Letzte Einträge:
- 11.04.2007: Neustart
- 11.04.2007: Design Version 1 steht
- 11.04.2007: Blog