2010-12-10 4 views
0

J'ai des calss suivants pour valider mes éléments d'entrée.zend Valider le message personnalisé sur rappel

class Validator_FormValidator { 
    public function genValid($value){ 

     $chainValid = new Zend_Validate(); 

     $strLenV = new Zend_Validate_StringLength(array('min' => 4, 'max' => 10)); 
     $strLenV->setMessage("You have entered a Invalid value","stringLengthInvalid"); 
     $chainValid->addValidator($strLenV); 

     return $result; 
    } 

} 

puis dans le contrôleur d'index

public function indexAction() 
    { 
     $this->view->form = new Form_LoginForm(); 
     $this->view->registrationForm = new Form_RegistrationForm(); 

     if($this->getRequest()->isPost()) { 
      $validatorObj = new Validator_FormValidator(); 
      $valid = new Zend_Validate_Callback(array($validatorObj,'genValid')); 
      $username = $this->_getParam('username');   

      if ($valid->isValid($username)) { echo 'success'; } 
      else { 
       echo 'failure'; 
       foreach ($valid->getMessages() as $message) { 
        echo "$message\n"; 
       } 

      } 
     } 
    } 

Maintenant, je suis en train d'ajouter des messages d'erreur personnalisés dans ma classe de Validator_FormValidator qui ne sont pas afficher dans mon état de défaillance du contrôleur. Quelqu'un d'entre vous peut-il guider comment faire cela? Est-ce que c'est ce que j'essaie de faire (créer une classe de validateur séparée et y mettre toute la fonction de validation) est une bonne pratique?

+0

Je pense que vous pouvez utiliser zendx jquery pour la validation. – Developer

Répondre

1

La manière habituelle de créer le vôtre, custom validate s est d'étendre Zend_Validate_Abstract ou toute classe de validateur déjà existant, par ex. Zend_Validate_StringLength. De cette façon, vous pouvez personnaliser le processus de validation ainsi que toutes ses propriétés, par ex. messages.

Questions connexes