2013-08-20 22 views
0

我有以下輸入過濾器與驗證一起工作,但StringToLower過濾器不起作用。任何人都知道如何工作? Zend2文檔在我使用的編碼方法中沒有任何示例。Zend 2 - 過濾器不能在我的InputFilter類中工作

$this->add(array(
     'name' => 'cemail', 
     'required' => true, 
     'filters' => array(
      array(
       'name' => 'string_to_lower', 
      ),     
      array(
       'name' => 'StringTrim', 
      ),  
     ), 
     'validators' => array(
      array(
       'name' => 'NotEmpty', 
       'break_chain_on_failure' => true, 
       'options' => array(
        'messages' => array(
         'isEmpty' => 'Email address is required' 
        ), 
       ), 
      ), 
      array(
       'name' => 'EmailAddress', 
       'break_chain_on_failure' => true, 
       'options' => array(
        'hostname' => true, 
        'messages' => array(
         'hostnameInvalid' => 'Invalid email address provided.', 
        ), 
       ), 
      ), 
      array(
       'name' => 'string_length', 
       'options' => array(
        'encoding' => 'UTF-8', 
        'min' => 5, 
        'max' => 150, 
        'messages' => array(
         'stringLengthTooLong' => 'Email address must not exceed 150 characters', 
         'stringLengthTooShort' => 'Email address must contain at least 5 characters', 
        ), 
       ), 
      ), 
     ), 
    )); 

回答

0

如果檢查過濾器的目錄,你會看到有幾個有:

Zend/Filer/* 

你應該使用的過濾器文件名作爲名稱,這將被用來當框架試圖包括過濾器類。

$inputFilter->add($factory->createInput(array(
     'name'  => 'my_field', 
     'required' => FALSE, 
     'filters' => array(
      array('name' => 'StripTags'), 
      array('name' => 'StringTrim'), 
      array('name' => 'StringToLower'), 
     ), 
     'validators' => array(
      array(
       'name' => 'StringLength', 
       'options' => array(
        'encoding' => 'UTF-8', 
        'min'  => 1, 
        'max'  => 45, 
       ), 
      ), 
     ), 
    )));