У меня есть пользовательское правило проверки, чтобы проверить, являются ли два введенных пароля одинаковыми, и если они не совпадают, я хочу получить сообщение «Пароли не совпадают».
Правило работает, однако, когда пароли не совпадают, оно просто отображает обычное сообщение об ошибке, что происходит?
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;
}
Там написано "Это поле нельзя оставлять пустым"
EDIT:
Странно то, что если я оставляю одно из полей пароля пустым, оба сообщения об ошибках говорят: «Это поле нельзя оставить пустым»
Тем не менее, если я добавлю что-то в оба, то это правильно говорит: «Пароли не совпадают»