Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Forms Zend form validation同时为同一字段提供多个自定义验证消息_Forms_Validation_Zend Framework_Message - Fatal编程技术网

Forms Zend form validation同时为同一字段提供多个自定义验证消息

Forms Zend form validation同时为同一字段提供多个自定义验证消息,forms,validation,zend-framework,message,Forms,Validation,Zend Framework,Message,我有一个Zend表单密码自定义验证 我已经将addValidator函数IInd参数设置为false,因为我需要一次获取所有错误。我的两个验证类都将self::INVLID设置为相应的错误消息 但是,当我查看Zend控制器时,即使两次验证都失败,我只得到一条(最后一条)错误消息 我一次需要所有的错误信息 /*表单验证*/ $passwordSpecialValidator=新的Passwordspecialvalidationvalidator(); $passwordHistoryValida

我有一个Zend表单密码自定义验证

我已经将
addValidator
函数
IInd
参数设置为false,因为我需要一次获取所有错误。我的两个验证类都将
self::INVLID
设置为相应的错误消息

但是,当我查看Zend控制器时,即使两次验证都失败,我只得到一条(最后一条)错误消息

我一次需要所有的错误信息

/*表单验证*/
$passwordSpecialValidator=新的Passwordspecialvalidationvalidator();
$passwordHistoryValidator=新PasswordHistoryValidationValidator(新模型(),$username,$newpass);
$this->newpass->addValidator($passwordSpecialValidator,false)
->addValidator($passwordHistoryValidator,false);
/*一个验证类*/
类PasswordHistoryValidationValidator扩展Zend\u Validate\u抽象{
const INVLID=“”;
受保护的$\u messageTemplates=数组(
self::INVLID=>“您的密码不符合历史记录要求”
);
公共函数构造($model、$username、$password){
$this->\u model=$model;
$this->_username=$username;
$this->_password=$password;
}
公共函数有效($value,$context=null){
如果($this->_username==“”){
$auth=Zend_auth::getInstance();
如果($auth->hasintity()){
$arrayResult=$auth->getIdentity();
if(设置($arrayResult->username)){
$this->_username=$arrayResult->username;
}
}
}
$passwordExists=false;
$oldPasswords=$this->\u model->getHistoryPasswords($this->\u用户名,$this->\u密码);
如果(计数($oldPasswords)>0){
$passwordExists=true;
}
如果($passwordExists==false){
返回true;
}否则{
$this->\u设置值($value);
$this->\u错误(self::INVLID);
返回false;
}
}
}
/*获取错误消息*/
foreach($objForm->getMessages()作为$messages){
foreach($messages作为$message){
$errMessages[]=$message;
}
}


但是数组
$errMessages
只有最后一条验证消息(没有索引),即使特殊验证和历史验证都失败了。如果两次验证都失败了,我如何在一个数组中获取这两条错误消息?

请更好地识别您的代码。我编辑了代码部分以提高可读性。