我有跟随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类中添加自定义错误消息,这些消息未在我的控制器故障情况下显示。 你们中的任何人都可以指导如何做到这一点吗?这是我想要做的(创建一个单独的验证器类并将所有验证功能放入其中)是一个好习惯吗?
答案 0 :(得分:1)
创建自己的custom validate的常用方法是扩展Zend_Validate_Abstract
或任何类别的现有验证器,例如Zend_Validate_StringLength
。这样您就可以自定义验证过程及其所有属性,例如消息。