Zend Validate - 如何从不同的子表单传递上下文值?

时间:2010-08-17 13:48:34

标签: php zend-framework zend-form zend-validate

我将一个Form拆分为3个SubForms,对于其中一个元素,在最后一个SubForm中,我创建了一个扩展Zend_Validator_Abstract的Validator。

此验证器需要检查第二个SubForm上的值是否为空。但是,此值不会出现在第三个子窗体中元素的$context数组中。

在SubForms的$context中提供此值的合理方法是什么?

...

经过一番思考后,我能想到的唯一方法就是将父Form的引用传递给Validator的构造函数,尽管它打破了封装。

1 个答案:

答案 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);
    }
}