在我的'成員'模型中,我通過此自定義驗證鍵/函數對比較password
是否匹配password_confirm
。CakePHP僅在提供時驗證
...'password_confirm' => array(
'compare' => array(
'rule' => array('validate_passwords'),
'message' => 'The passwords you entered do not match.',
'required' => true
),
'length' => array(
'rule' => array('between', 6, 20),
'message' => 'Your password must be between 6 and 20 characters.',
),
'empty' => array(
'rule' => 'notEmpty',
'message' => 'The password field must not be left blank.',
),
)...
功能validate_passwords ...
function validate_passwords($data, $password_field = 'password', $hashed = true) {
$password = $this->data['Member']['password'];
$password_confirm = $hashed ?
Security::hash($data['password_confirm'], null, true) :
$data['password_confirm'];
return $password === $password_confirm;
}
我有我的網站的許多不同的部分,允許成員的編輯。有些章節允許更改密碼,其他章節只允許成員編輯其生物。
然而,因爲沒有password_confirm
場在用戶編輯生物(例如)的形式驗證總是返回比有password_confirm
形式存在虛假任何形式,其他。
有沒有來驗證這樣一個有效的方法...
「與password_confirm比較密碼只有當password_confirm
鍵$data
陣列中是否存在」
我無法找到原來這在任何地方,我希望我不重複現有的問題。
謝謝!
注意:我想確保該字段在表單中存在時不會留空。
使用allowEmpty作爲真確認密碼 –