Im无法禁用填充Zend_Form中的值。Zend_Form禁用之前填充isValid()
我有我自己的表格类。使用隐藏的标记元素,我希望每次调用(或重新发布)表单时动态设置随机值。我认为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
}
SOLUTION:我发现的唯一的解决方法是调用中的setValue和的Controler后的isValid方法。例如。在错误块。
问题:是否有任何方式直接在表单类中设置元素值或者在表单类中或在调用isValid()之前禁用填充值?
你有没有考虑过使用Zend_Form_Element_Hash而不是创建自己的令牌? – Marcin 2011-06-03 13:33:28