我有一个自定义验证规则,用于检查两个输入的密码是否相同,如果不相同,我希望有一条消息提示"密码不匹配"。
这个规则是有效的,但是当密码不匹配时,它只会显示普通的错误消息,这是怎么回事?
var $validate=array(
'passwd2' => array('rule' => 'alphanumeric',
'rule' => 'confirmPassword',
'required' => true,
'allowEmpty'=>false));
function confirmPassword($data)
{
$valid = false;
if ( Security::hash(Configure::read('Security.salt') .$data['passwd2']) == $this->data['User']['passwd'])
{
$valid = true;
$this->invalidate('passwd2', 'Passwords do not match');
}
return $valid;
}
它说“该字段不能为空”
编辑:
奇怪的是,如果我留空一个密码字段,两个错误消息都会显示“该字段不能为空”
但是,如果我在两个字段中都输入了内容,则会正确地显示“密码不匹配”