【问题标题】:Using custom isValid() function for specific subform in Zend_Form对 Zend_Form 中的特定子表单使用自定义 isValid() 函数
【发布时间】:2010-09-07 09:32:20
【问题描述】:

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

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

提前致谢。

【问题讨论】:

    标签: php zend-framework zend-form subform


    【解决方案1】:
    <?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',
            ));
        }
    }
    

    【讨论】:

      【解决方案2】:
      $form1 = new ..._Form1();
      $form2 = new ..._Form2();
      
      if ($form1->isValid($this->getRequest()->getPost())) {
         ...
      }
      
      if ($form2->isValid($this->getRequest()->getPost())) {
         ...
      }
      

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-12-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多