2014-09-22 46 views
0

我正在編寫用戶的功能以更改Yii框架內的密碼。視圖要求用戶輸入兩次他的當前密碼和他的新密碼。舊密碼一起我在模型中添加了以下方法。從模型中的函數向視圖添加錯誤

public function findPassword(){ 
     $user = Users::model()->findByPk(Yii::app()->user->id); 
     if(password_verify($user->password,$this->oldPassword) !== true){ 
      $this->addError($this->attribute,'Old password is incorrect'); 
     } 
    } 

我在模型裏面有下面的規則。

array('old_password', 'findPassword', 'on' => 'changePwd'), 

當我做到這一點,走在表格上,並試圖更改密碼,我得到以下error

回答

1

試試這個:

public function findPassword(){ 
    $user = Users::model()->findByPk(Yii::app()->user->id); 
    if(password_verify($user->password,$this->oldPassword) !== true){ 
     $this->addError('old_password','Old password is incorrect'); 
    } 
} 

例子:http://www.yiiframework.com/wiki/168/create-your-own-validation-rule/

+0

它給我以下錯誤未定義的變量:屬性這是有道理的,因爲函數內部沒有$屬性。是一個很好的做法,我使用模型中的setFlash函數或者我應該只使用控制器內部的那些類型的錯誤。 – Steve 2014-09-22 14:18:55

+0

好吧,我編輯我的答案。控制器中的SetFlash。 – 2014-09-22 14:25:16

+0

好的,謝謝你的幫助。 – Steve 2014-09-22 14:30:48