Zend框架验证表单

时间:2013-10-29 10:18:24

标签: validation zend-framework

我正在尝试为用户创建一个表单元素来输入日期,但我一直收到此错误:

  

为addValidator提供的验证器无效;必须是字符串或   Zend_Validate_Interface不知道我做错了什么

//here is my form code for the date element
    $Commenced_Trading_Date = new Zend_Form_Element_Text('Commenced_Trading_Date');
        $Commenced_Trading_Date->setLabel('Commenced Trading Date')
            ->setRequired(true)     
            ->addFilter('StripTags')
            ->addFilter('StringTrim')
            ->addvalidator(array(array('Date', true, array('format'=>'j F Y'))));

这是我唯一的代码。请帮忙

1 个答案:

答案 0 :(得分:0)

方法 addValidator 不会将单个数组作为参数。论点是:

  1. 验证程序的名称为字符串或验证程序对象(适用于自定义验证程序) - 强制
  2. 布尔标志,BreakChainOnFailure - 可选
  3. 选项数组 - 可选
  4. 请参阅Zend API说明:

      addValidator(string | \Zend_Validate_Interface $validator, bool $breakChainOnFailure = false, array $options = array()) : \Zend_Form_Element
    

    您可以将日期验证器用作:

       $Commenced_Trading_Date->addvalidator('Date', true, array('format'=>'j F Y'));
    

    或者:

       $validator = new Zend_Validate_Date(array('format' => 'j F Y'));
       $Commenced_Trading_Date->addValidator($validator);