我将一个Form拆分为3个SubForms,对于其中一个元素,在最后一个SubForm中,我创建了一个扩展Zend_Validator_Abstract
的Validator。
此验证器需要检查第二个SubForm上的值是否为空。但是,此值不会出现在第三个子窗体中元素的$context
数组中。
在SubForms的$context
中提供此值的合理方法是什么?
...
经过一番思考后,我能想到的唯一方法就是将父Form的引用传递给Validator的构造函数,尽管它打破了封装。
答案 0 :(得分:3)
您也可以尝试覆盖表单对象 isValid()方法并使用那里可用的$ data变量。
例如:
<?php
class MyForm extends Zend_Form {
public function isValid($data) {
// check $data['fieldname'] or add a new validator here, then...
return parent::isValid($data);
}
}