6

CakePHP2.2.3を使用しています。テーブルはないが検証ルールがあるモデルの連絡フォームがあります。

私の問題は、入力タイプがtextareaであることをCakePHPに伝える方法です。使用することはできます$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()を使用してから、options配列で指定する傾向があります。

$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 に答える