zend在回调时验证自定义消息

时间:2010-12-10 17:08:17

标签: zend-framework validation

我有跟随calss来验证我的输入元素。

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类中添加自定义错误消息,这些消息未在我的控制器故障情况下显示。 你们中的任何人都可以指导如何做到这一点吗?这是我想要做的(创建一个单独的验证器类并将所有验证功能放入其中)是一个好习惯吗?

1 个答案:

答案 0 :(得分:1)

创建自己的custom validate的常用方法是扩展Zend_Validate_Abstract或任何类别的现有验证器,例如Zend_Validate_StringLength。这样您就可以自定义验证过程及其所有属性,例如消息。