我无法禁用 Zend_Form 中的填充值。
我有自己的表单类。使用隐藏的令牌元素,我想在每次调用(或重新发布)表单时动态设置随机值。我认为 setValue 会完成这项工作。
class MY_Form_Test extends Zend_Form {
public function init() {
...
$this->addElement('hidden', 'token');
$this->getElement('token')->setValue(uniqid('',true));
...
}
但是:当我有这样的简单控制器时。Zend 自动填充旧的隐藏值,除了生成新的值。
$form = new JC_Form_Test();
if($form->isValid($_POST)){
// Action ...
}
else{
// Error
}
解决方案:我找到的唯一解决方案是在 Controler 和 isValid 方法之后调用 setValue。例如。在错误块中。
问题:有没有办法直接在表单类中设置元素值,或者在表单类中或在调用 isValid() 之前禁用填充值?