6

我正在使用 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>,我认为这是 CakePHP 用来注入验证错误的 DOM 元素。

我想知道实现这一目标的最佳方法是什么。

4

3 回答 3

31

我倾向于将 input() 用于所有类型,然后在选项数组中指定..

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

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

于 2012-10-09T12:09:57.390 回答
2

尝试以下还包括您指定为选项的类

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#automagic-form-elements

于 2012-10-09T12:17:09.513 回答
-1
<?= $this->Form->input('comment', ['type' => 'textarea', 'label' => false, 'placeholder'=> 'Comment here', 'escape' => false,'class' =>'comment', 'rows' => '10', 'cols' => '20']); ?>

创建textarea具有指定行数和列数的,而不仅仅是标准文本区域。

于 2017-01-10T09:45:41.640 回答