2013-10-29 171 views
0

我想爲用戶創建一個表單元素輸入一個日期,但我不斷收到此錯誤:Zend Framework的驗證形式

Invalid validator provided to addValidator; must be string or Zend_Validate_Interface Dont know what im doing wrong

//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')))); 

這是我做了唯一的代碼。請幫助

+0

這種嘗試,addValidator( '日',真的,陣列('DD-MM-YYYY ')) –

回答

0

的方法addValidator並不需要一個數組作爲參數。這些參數是:

  1. 驗證作爲字符串或驗證對象(自定義驗證)的名稱 - 強制性
  2. 布爾標誌,BreakChainOnFailure - 可選
  3. 選項陣列 - 可選

查看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); 
+0

感謝幫助它與第一個一起工作 –