Nachtrag zum Form Helper 1.2 Beitrag

1. Okt 2007

Eine kleine Erweiterung gibt es für alle Formularhungrigen, die sich an CakePHP 1.2 versuchen wollen. Euch wird bestimmt irgendwann einmal folgendes Problem begegnen:
Ihr wollt mit $form->input ein Textfeld erzeugen, dem zugehörigen Labelfeld einen anderen Namen geben und dazu noch eine Klasse oder einen Style.
Nun könnte man meinen, es würde so funktionieren:

  1. <?php echo $form->input(‘feldname’, array(‘label’=>‘Neuer Feldname’), array(‘class’=>‘klasse’, ‘style’=>‘margin:1em;’));

Dies interpretiert Cake jedoch korrekterweise als Styleanweisung für das Textfeld, nicht für das Label. Wie kann man diese Situation nun lösen?

Ganz so einfach macht es Cake hier keinem, aufgrund der noch nicht verfügbaren Dokumentation kommt man um etwas Coresuche nicht drum herum. Außer ihr lest mein Blog, dann such ich für euch ;-) Umständlich wäre es, wenn man das Label einfach auf false stellt und ein eigenes Label mit $form->label erzeugt.

Der Trick hier, wie auch bei vielen anderen CakePHP Problemchen ist das verschachteln von Arrays. So funktioniert es:

  1. <?php echo $form->input(‘feldname’, array(‘label’=>array(‘class’=>‘klasse’, ‘style’=>‘margin:1em;’)));?>

Doch nun ergibt sich ein neues Problem: Das Label heißt nun wieder Feldname, doch wir möchten “Neuer Feldname” haben. Dies funktioniert, indem wir den Schlüssel “text” erstellen und ihm den entsprechend gewünschten Labelnamen geben.

  1. <?php echo $form->input(‘feldname’, array(‘label’=>array(‘text’=>‘Neuer Feldname’, ‘class’=>‘klasse’, ‘style’=>‘margin:1em;’)));?>

Problem gelöst, und das ganze in einer Zeile, prima oder?

Kategorie: CakePHP, Tipps | 0 Kommentare »


Veröffentlicht am Montag, den 1. Oktober 2007 um 10:36 Uhr veröffentlicht

Du kannst einen Kommentar schreiben, oder einen Trackback auf deiner Seite einrichten.

Einen Kommentar schreiben

Du mußt angemeldet sein, um kommentieren zu können.