1

納入定製驗證錯誤消息到表單對象我有以下代碼它創建了一個特定的文本元素:由元件

 $this->add([   
      'type' => 'text', 
      'name' => 'newpassword', 
      'attributes' => [ 
       'id' => 'newpassword', 
       'class' => 'form-control' 
      ], 
      'options' => [ 
       'label' => 'Enter New User Password', 
      ], 
     ]); 

我有以下代碼產生我的輸入過濾器定義:

  $inputFilter->add([ 
        'name'  => 'newpassword', 
        'required' => true, 
        'filters' => [ 
         ['name' => 'StringTrim'], 
         ['name' => 'StripTags']     
        ], 
        'validators' => [ 
         [ 
          'name' => 'StringLength', 
          'options' => [ 
           'min' => 6, 
           'max' => 256 
          ], 
         ]     
        ], 
      ]);  

我想要完成的是添加我的自定義消息。以下是他們在api文檔中的方式:

$validator = new Zend\Validator\StringLength(array('min' => 8, 'max' => 12)); 

$validator->setMessages(array(
    Zend\Validator\StringLength::TOO_SHORT => 
    'The string \'%value%\' is too short', 
    Zend\Validator\StringLength::TOO_LONG => 
    'The string \'%value%\' is too long' 
)); 

如何將我的自定義驗證消息合併到我已編程的代碼中?

UPDATE:

我覺得這是我會找到成功的,但不知道如何做到這一點:

$inputFilter->get('newpassword')->getValidatorChain()-> 

回答

0

使用這個 - :其messageTemplates設置自定義消息

$inputFilter->add([ 
      'name'  => 'newpassword', 
      'required' => true, 
      'filters' => [ 
       ['name' => 'StringTrim'], 
       ['name' => 'StripTags'] 
      ], 
      'validators' => [ 
       [ 
        'name' => 'StringLength', 
        'options' => [ 
         'min' => 6, 
         'max' => 256, 
         'messageTemplates'=>array(
          \Zend\Validator\StringLength::TOO_SHORT => 
           'The string \'%value%\' is too short', 
          \Zend\Validator\StringLength::TOO_LONG => 
           'The string \'%value%\' is too long' 
         ) 
        ], 
       ] 
      ], 
     ]); 
+0

我覺得'messageTemplates'應該是'messages',不知道'messageTemplates'是否有效。 – Garry