2012-10-09 15 views
5

Ich benutze CakePHP 2.2.3. Ich habe ein Kontaktformular mit einem Modell ohne Tabelle, aber mit Validierungsregeln.CakePHP textarea

Mein Problem ist, wie man CakePHP sagt, dass der Eingabetyp Textarea ist? Ich könnte $this->Form->textarea() verwenden, aber ich habe festgestellt, dass wenn ich es verwende, es nicht das richtige HTML erstellt, um Validierungsfehler zurück zu melden. Wenn ich $this->Form->input() verwende, wird nur ein normaler Text vom Eingabetyp erstellt.

Es sollte so etwas wie erstellen:

<div class="input email required"><input name="data[Quote][email]" required="1" type="email" id="QuoteEmail"/></div> 

sondern schafft es so etwas wie:

<textarea name="data[Quote][company_description]" id="QuoteCompanyDescription"></textarea> 

Mitteilung das Fehlen von <div class="input email required"></div>, die ich davon ausgehen, ist das DOM-Element CakePHP die Validierung zu injizieren verwendet Error.

Ich würde gerne wissen, was der beste Weg ist, dies zu erreichen.

Antwort

25

Ich neige dazu, Eingang() zu verwenden, für alle Typen und dann im Optionsarray angeben ..

$this->Form->input('company_description', array('type' => 'textarea')); 

http://book.cakephp.org/2.0/en/core-libraries/helpers/form.html

+0

Überprüfen Sie, ob der Name des Feldes mit dem in der Modellvalidierung übereinstimmt. – 472084

+0

Es tut, aber wie soll ich im Modell sagen, dass es ein Textfeld ist? Ich habe derzeit nur die notEmpty-Regel und eine Nachricht für diese Regel. –

+0

Sie sagen das Feld zu einem '