1

je le code suivant qui crée un élément de texte spécifique:Incorporer des messages d'erreur de validation personnalisée en objet de formulaire par élément

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

Et je le code suivant qui produit mon filtre d'entrée définitions:

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

Ce que je veux accomplir, c'est ajouter mes messages personnalisés. Voici la façon dont ils l'ont dans la documentation 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' 
)); 

Comment puis-je intégrer mes messages de validation personnalisés dans mon code déjà programmé?

MISE À JOUR:

Je pense que c'est là où je vais trouver le succès, mais ne savez pas comment le faire:

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

Répondre

0

Utilisation this-: son messageTemplates pour définir un message personnalisé

$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

Je pense que 'messageTemplates' devrait être' messages', je ne sais pas si 'messageTemplates' fonctionne. – Garry