2017-02-27 52 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

相关问题