我想要在changepassword模塊上工作。我想從數據庫檢查用戶當前密碼是否與用戶輸入的相同。我已經定義了一個$ validate數組,如下所示。
`'old_password' => array(
'minLength' => array(
'rule' => array('minLength', 1),
'message' => 'Current Password is required'
),
'oldPass' => array(
'rule' => array('oldPass',array('old_password')),
'message' => 'Current Password is invalid'
)
),`
,並定義了一個方法來檢查當前的密碼
`function oldPass($data){
if(!empty($data['old_password'])) {
$valid = false;
$userData = $this->Auth->user(); // here I am getting error
$oldPass = Security::hash(Configure::read('Security.salt') . $data['old_password']);
if ($userData['User']['password'] == $oldPass) {
$valid = true;
}
return $valid;
} else {
return false;
}
}`
這裏是我得到 未定義的屬性錯誤:用戶:: $驗證[APP \型號\ user.php的,行194] 致命錯誤:調用一個成員函數用戶()一個非對象在
基本上所有我想要匹配由用戶輸入的密碼的當前密碼
我正在使用 $ this-> User-> validates()進行驗證。並獲取錯誤消息我正在使用$ this-> set('validationErrorsArray',$ this-> User-> invalidFields());
請幫助我如何獲取模型中當前登錄的用戶ID。
我使用給出的代碼示例解決了這個問題[link] http://www.ninjacodermonkey.co.uk/2010/10/obtaining-user-id-in-model-validation-cakephp/ [/ link] – deep 2011-04-23 03:55:15
我也是..謝謝你的鏈接 – 2012-01-06 01:00:14