2010-12-10 65 views
0

我有以下calss驗證我的輸入元素。zend在回調驗證自定義消息

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; 
    } 

} 

,然後在索引控制器

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"; 
       } 

      } 
     } 
    } 

現在,我想在我的Validator_FormValidator類未在我的控制器故障情況顯示添加自定義錯誤消息。 你們中的任何人都可以指導如何做到這一點?這是我想要做什麼(創建一個單獨的驗證器類,並把所有的驗證功能)是一個很好的做法?

+0

我想你可以使用zendx jquery進行驗證。 – Developer 2010-12-16 19:09:12

回答

1

創建自己的custom validate的常用方法是擴展Zend_Validate_Abstract或任何已有的驗證器類,例如, Zend_Validate_StringLength。通過這種方式,您可以自定義驗證過程以及其所有屬性,例如消息。