Cakephp textarea

Я использую CakePHP 2.2.3. У меня есть контактная форма с моделью без таблицы, но с правилами проверки.

Моя проблема в том, как сказать CakePHP, что тип ввода - textarea? Я мог бы использовать $this->Form->textarea() но я заметил, что когда я его использую, он не создает правильный HTML, чтобы сообщить об ошибках валидации. Если я использую $this->Form->input() он просто создает обычный тип ввода текста.

Это должно создать что-то вроде:

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

но вместо этого он создает что-то вроде:

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

заметить отсутствие <div class="input email required"></div>, который я предполагаю, является элементом DOM, который CakePHP использует для введения ошибки валидации.

Я хотел бы знать, каков наилучший способ достичь этого.

3 ответа

Решение

Я склонен использовать input() для всех типов, а затем указать в массиве параметров..

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

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

Попробуйте следующие, которые также включают класс, который вы указали в качестве опции

echo $this->Form->input('company_description', array('type' => 'textarea', 'escape' => false,'class' =>'input email required');

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

<?= $this->Form->input('comment', ['type' => 'textarea', 'label' => false, 'placeholder'=> 'Comment here', 'escape' => false,'class' =>'comment', 'rows' => '10', 'cols' => '20']); ?>
Другие вопросы по тегам