2017-05-10 7 views
0

私はyii2を使ってアプリケーションを開発しました。それでは、私のユーザをafterLoginで確認してパスワードを変更する必要があります。私のUserモデルでは、デフォルトで '123456'が定義されています。 まだ123456の場合、私はパスワードを変更するために私のユーザにはモーダルブートストラップを作ってほしい。Yii2 - パスワードを変更するafterLogin

ちょうどこのような設定/ web.phpにおけるだから、この

public function actionCreate(){ 
    $model = new User(); 
    $model->scenario = 'create'; 

    if ($model->load(Yii::$app->request->post())) { 
     $model->status = $model->status == 1 ? 10 : 0; 
     $model->setPassword('123456'); 
     .... 
} 

、のようなコード:おかげですべての

namespace app\events; 
use Yii; 
use app\models\User; 

class AfterLoginEvent{ 
public static function handlePasswordForFirstTime($event){ 
    $user = new User(); 
    /*How to check if password still 123456*/ 
    } 
} 

:ちょうどこのようなイベントでは、

'user' => [ 
     'identityClass' => 'app\models\User', 
     'on afterLogin' => ['app\events\AfterLoginEvent', 'handlePasswordForFirstTime'], 
     // 'enableAutoLogin' => true, 
    ], 

答えて

0

だけでパスワードを検証

if ($user || $user->validatePassword('123456')) { 
    // password is still '123456' 
} else { 
    // user has changed password 
} 
+0

無効なパラメータ - のYii \ベースの\ InvalidParamException ハッシュが無効です。 –

+0

http://stackoverflow.com/questions/25910302/yii2-exception-in-validatepassword – Thu

関連する問題