成功登录后,控制器将重定向到yii2中的登录页面

时间:2019-01-23 18:12:55

标签: html mysql yii2-advanced-app

我在登录时从标题中以小部件的身份登录,并获得验证并返回用户数据,但是它没有重定向到仪表板。

这是我的代码:

class PublicHeaderWidget extends Widget {

    public $action;

    public function init() {
        parent::init();           
    }

    public function run() {
        $model = new LoginForm();
        $postData = Yii::$app->request->post();

        if($postData){

            $email = @$postData['LoginForm']['email'];
            if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
                $model->scenario = 'lwe';
            } else {
                $model->scenario = 'default';
            }

        }

        if ($model->load(Yii::$app->request->post())) {

            if($model->login()) {
               if(Yii::$app->user->identity->role->item_name == Yii::$app->params['role3']) {
                    return Yii::$app->Common->redirect(Url::toRoute(['dashboard/']));
                } else {
                    Yii::$app->user->logout();
                    Yii::$app->session->setFlash('error', \Yii::t('app', 'Please login with profile holders details.'));
                    return Yii::$app->Common->redirect(Url::toRoute(['login']));
                }
            } else {
                Yii::$app->session->set('user.postLoginData', Yii::$app->request->post()); // Set post data to get them in search results page
                Yii::$app->session->setFlash('error', \Yii::t('app', 'Login Failed! Inavlid Email / Mobile or Password Try Again!'));
                return Yii::$app->Common->redirect(Url::toRoute(['login/']));
            }
        } 
        return $this->render('publicHeader', [
            'model' => $model,
        ]);
    }

}

0 个答案:

没有答案