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

发布于 2024-09-18 05:03:43 字数 134 浏览 13 评论 0原文

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

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

提前致谢。

I have a form with several subforms. I've overriden the form's isValid function with my own, but can't find any documentation on how to set an isValid function per individual subform.

Can someone post a link or sample code so I can learn how to do this please.

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

酷炫老祖宗 2024-09-25 05:03:43
<?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',
        ));
    }
}
<?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',
        ));
    }
}
左岸枫 2024-09-25 05:03:43
$form1 = new ..._Form1();
$form2 = new ..._Form2();

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

if ($form2->isValid($this->getRequest()->getPost())) {
   ...
}
$form1 = new ..._Form1();
$form2 = new ..._Form2();

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

if ($form2->isValid($this->getRequest()->getPost())) {
   ...
}
喜爱皱眉﹌ 2024-09-25 05:03:43

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

Try using Zend_Validate_Callback http://framework.zend.com/manual/en/zend.validate.set.html to validate just the special fields you want. You can access other field values through the context.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文