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