Cakephp textarea

João Gonçalves picture João Gonçalves · Oct 9, 2012 · Viewed 24.1k times · Source

I am using CakePHP 2.2.3. I have a contact form with a model without a table but with validation rules.

My problem is, how to tell CakePHP that the input type is textarea ? I could use $this->Form->textarea() but I've noticed that when I use it, it doesn't create the proper HTML to report validation errors back. If I use $this->Form->input() it just creates a normal input type text.

It should create something like:

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

but instead it creates something like:

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

notice the absence of <div class="input email required"></div>, which I assume is the DOM element CakePHP uses to inject the validation error.

I would like to know what's the best way to achieve this.

Answer

472084 picture 472084 · Oct 9, 2012

I tend to use input() for all types and then specify in the options array..

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

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