私はCakePHP(2.x)を使用するアプリケーションで作業しており、フォームを作成するたびにいくつかの設定を再利用していたので、他に何も渡されない場合にデフォルト値を自動的にロードするデフォルトのFormHelperクラスを拡張することにしました(以下のコードを参照してください)。
<?php
class AppFormHelper extends FormHelper
{
public function input($fieldName, $options = array())
{
$defaults = array(
'class' => 'input',
'div' => array(
'class' => 'button-height block-label margin-bottom'
)
);
$options = Set::merge($defaults, $options);
return parent::input($fieldName, $options);
}
}
一見すると、このように私の見解ではこれを呼び出すと、これは完全に機能しているように見えました$this->AppForm->input('test');
。ただし、そのフォームが送信されてエラーが発生した場合、そのエラーは画面に表示されません。呼び出し$this->Form->input('test')
てエラーが発生すると、次のようなdivが作成されます。
<div class="error-message">This form had an error</div>
最終的には、FormHelperの入力オプションを簡単に複製する方法が必要であり、これが正しい方法だと思いましたが、問題が発生しているため、もうわかりません。誰もがエラーを再び表示する方法を知っているか、FormHelperのデフォルトオプションを提供するためのより良い解決策を持っています。
ありがとう!