2

我已经将一个表单拆分为 3 个子表单,对于其中一个元素,在最后一个子表单中,我正在创建一个扩展Zend_Validator_Abstract.

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

使该值在$context跨子表单中可用的明智方法是什么?

...

经过一番思考,我能想到的唯一方法是将父表单的引用传递给验证器的构造函数,尽管它破坏了封装。

4

1 回答 1

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);
    }
}
于 2010-08-19T16:00:08.880 回答