我有一個自定義驗證規則來檢查輸入的兩個密碼是否相同,如果他們不是我希望有一條消息說「密碼不匹配」。cakephp自定義驗證規則消息
然而,規則的作品,當密碼不匹配它只是顯示正常的錯誤信息,發生了什麼?
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;
}
它說:「此字段不能留空」
編輯:
奇怪的是,如果我離開空白密碼的領域之一,雙方的錯誤消息說「此字段不能留空」
但是,如果我把兩個東西,那麼它正確地說:‘密碼不匹配’
哦,我不知道,你可以指定錯誤消息的形式幫助選項,這簡化了很多事情! – 2010-10-22 23:22:28
這是在食譜 - http://book.cakephp.org/view/1401/options-error。請注意,「confirm_password」和「密碼」字段的標籤已切換。 – bancer 2010-10-22 23:27:04