Zend_Form で値の入力を無効にすることができません。
私は独自のフォームクラスを持っています。フォームが呼び出される(または再投稿される)たびにランダムな値を動的に設定したい非表示のトークン要素を使用します。setValue がうまくいくと思いました。
class MY_Form_Test extends Zend_Form {
public function init() {
...
$this->addElement('hidden', 'token');
$this->getElement('token')->setValue(uniqid('',true));
...
}
BUT:このような単純なコントローラーがある場合。Zend は、新しい非表示の値を生成することを除いて、古い非表示の値の入力を自動化します。
$form = new JC_Form_Test();
if($form->isValid($_POST)){
// Action ...
}
else{
// Error
}
解決策:私が見つけた唯一の解決策は、コントローラーで setValue を呼び出し、その後に isValid メソッドを呼び出すことです。例えば。エラーブロックで。
質問:フォーム クラスで要素の値を直接セットアップする方法、またはフォーム クラスまたは isValid() が呼び出される前に値の入力を無効にする方法はありますか?