我把这个类添加到library/My/Validate/PasswordConfirmation.php。
<?php
require_once Zend/Validate/Abstract.php ;
class My_Validate_PasswordConfirmation extends Zend_Validate_Abstract
{
const NOT_MATCH = notMatch ;
protected $_messageTemplates = array(
self::NOT_MATCH => Password confirmation does not match
);
public function isValid($value, $context = null)
{
$value = (string) $value;
$this->_setValue($value);
if (is_array($context)) {
if (isset($context[ password ])
&& ($value == $context[ password ]))
{
return true;
}
} elseif (is_string($context) && ($value == $context)) {
return true;
}
$this->_error(self::NOT_MATCH);
return false;
}
}
?>
然后我在我的表单中创建了两个字段,就像这样:
$userPassword = $this->createElement( password , user_password );
$userPassword->setLabel( Password: );
$userPassword->setRequired( true );
$this->addElement($userPassword);
//create the form elements user_password repeat
$userPasswordRepeat = $this->createElement( password , password_confirm );
$userPasswordRepeat->setLabel( Password repeat: );
$userPasswordRepeat->setRequired( true );
$userPasswordRepeat->addPrefixPath( My_Validate , My/Validate , validate );
$userPasswordRepeat->addValidator( PasswordConfirmation );
$this->addElement($userPasswordRepeat)
一切都好,但每当我提交表单时,我总是收到“密码确认不匹配”的消息?我的代码有什么问题?