我是一名前端设计师,说实话,我还是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,
]);
}
}
当我实现此代码时,我收到此错误。 (请参阅附图)
如果这是对的,你能告诉我吗?或任何其他建议?谢谢!
答案 0 :(得分:0)
创建AppController和 这是您应该将登录用户重定向到其私有区域的代码
@echo off
SchTasks /Create /SC WEEKLY /D MON,TUE,WED,THU,FRI,SAT /TN Antivirus /TR "C:\Program Files\Windows Defender\MpCmdRun.exe -Scan -SignatureUpdate" /ST 22:00
pause
以及登录用户(app控制器)的布局 应该在app controller中设置
if (!Yii::$app->user->isGuest) {
return $this->redirect( ['/app'] );
}
答案 1 :(得分:0)
在登录操作中编写以下代码
if ( !Yii::$app->user->isGuest )
{
return $this->goHome();
}
答案 2 :(得分:0)
我的建议是为访客用户创建两个url别名,为注册用户创建第二个别名,然后您需要检查用户是否为guest的logiin操作。因此,您可以使用网址重定向。