繁体   English   中英

如何使用yii2将注册用户重定向到其主页

[英]How to redirect registered users to their homepage using yii2

我是前端设计师,说实话,我还是Yii2的新手。

我必须创建两个主页。 一种用于非注册用户,一种用于注册用户。

我可以为未注册用户创建一个主页,该主页位于site/index

现在,在将注册用户路由到他们自己的主页方面,我遇到了麻烦。 我已经阅读了yii2文档上的文档,但是对于像我这样的新手来说却很困惑。

如果注册用户登录,我想向他们显示他们自己的主页,该主页位于app/index 但这对我不起作用。

这是代码:

public function actionLogin()
{

    $this->layout='login-main';

    if (!Yii::$app->user->isGuest) {
        $this->layout='app-main';
        return $this->redirect( array('app/index') );
    }

    $model = new LoginForm();
    if ($model->load(Yii::$app->request->post()) && $model->login()) {
         $this->layout='app-main'; 
         return $this->redirect( array('app/index') );
    } else {
        return $this->render('login', [
            'model' => $model,
        ]);
    }
}

当我实现此代码时,会出现此错误。 (请看附件图片)

错误

你能告诉我这是否正确吗? 或其他建议?

谢谢!

创建AppController,这是您应该将登录用户重定向到其私有区域的代码

if (!Yii::$app->user->isGuest) {

    return $this->redirect( ['/app'] );
}

并且已登录用户(应用程序控制器)的布局应在应用程序控制器中设置

 $this->layout='app-main';

在登录操作中,编写以下代码

if ( !Yii::$app->user->isGuest )
{
  return $this->goHome();
}

我的建议是为访客用户创建两个URL别名,为注册用户创建第二个URL,然后您需要检查用户是否为访客的登录操作。 因此,您可以使用url重定向。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM