在Zend_Form中为特定子表单使用自定义isValid()函数

时间:2010-09-07 09:32:20

标签: php zend-framework zend-form subform

我有一个包含多个子表单的表单。我用自己的方法覆盖了表单的isValid函数,但找不到任何关于如何为每个子表单设置isValid函数的文档。

有人可以发布链接或示例代码,以便我可以了解如何执行此操作。

提前致谢。

3 个答案:

答案 0 :(得分:3)

<?php
class Your_Sub_Form extends Zend_Form_SubForm
{
    public function isValid($data)
    {
        // Your custom validation-logic here
        return parent::isValid($data);
    }

    public function init()
    {
        ...
    }
}

class Your_Form extends Zend_Form
{
    public function isValid($data)
    {
        return parent::isValid($data);
    }

    public function init()
    {
        $this->addSubForm(new Your_Sub_Form(), 'subform');

        $this->addElement('submit', 'submit', array(
            'ignore'   => true,
            'label'    => 'Submit',
        ));
    }
}

答案 1 :(得分:1)

$form1 = new ..._Form1();
$form2 = new ..._Form2();

if ($form1->isValid($this->getRequest()->getPost())) {
   ...
}

if ($form2->isValid($this->getRequest()->getPost())) {
   ...
}

答案 2 :(得分:0)

尝试使用Zend_Validate_Callback http://framework.zend.com/manual/en/zend.validate.set.html来验证您想要的特殊字段。您可以通过上下文访问其他字段值。