2017-02-27 7 views
1

私はユーザ登録のためにyii2-userを使用しています。私は、ユーザーがソーシャルアカウントからログインする前に登録されているかどうかをチェックしたいと思います。私は自分のアカウントを作成し、それを世界中のmain.phpで処理する前にイベントを引き起こしています。Yii2 - トリガ後にイベントハンドラからアプリケーションを終了

ユーザーが既に登録されている場合は、メッセージを表示してから、登録/ログイン処理を続行しないようにします。

要するに、ユーザーがホームページにリダイレクトされ、指定した条件が一致した場合にイベントハンドラからのメッセージが表示されるようにしたいとします。

'modules' => [ 
    'user' => [ 
     'class' => 'dektrium\user\Module', 
     'enableRegistration' => true, 
     'controllerMap' => [ 
      'security' => [ 
       'class' => \dektrium\user\controllers\SecurityController::className(), 
       'on ' . \dektrium\user\controllers\SecurityController::EVENT_BEFORE_CREATE_ACCOUNT => function ($e) { 

        $email = $e->client->email; 

        $user_model = \dektrium\user\models\User::findOne(['email' => $email]); 

        if($user_model == Null) 
        { 
         return;  //then just return and continue next steps 
        } 
        Yii::$app->session->setFlash('info', "You cannot directly login with this account. Please login with the credentials sent to your email ($email) first and then connect your Account from Settings."); 
        //---------- NOW REDIRECT TO HOME PAGE-------- 
       } 
      ], 
     ], 
    ], 
], 

ユーザをホームページにリダイレクトして現在のコントローラの実行を停止するにはどうすればよいですか?

答えて

0

追加:

//---------- NOW REDIRECT TO HOME PAGE-------- 
Yii::$app->response->redirect(Url::home()); 
Yii::$app->end(); 
+0

すでに試してみました。うまくいかなかった.. – Choxx

関連する問題