【发布时间】:2016-09-16 04:28:36
【问题描述】:
我有一个组件,其中有一个 init() 函数,该函数将在每个操作之前调用。
我只需要检查会话是否过期重定向用户登录。
这是我的代码, config/main.php 组件 -
'MyGlobalClass'=>[
'class'=>'common\components\MyGlobalClass'
],
和
'bootstrap' => ['log','MyGlobalClass'],
组件/MyGlobalClass .php:
class MyGlobalClass extends \yii\base\Component{
public function init() {
//echo "Hi";
if(Yii::$app->user->isGuest)
{
//echo 'called';exit;
Yii::$app->getResponse()->redirect(Yii::$app->urlManager->createUrl('login'));
}
//parent::init();
}
}
所以它会进入 if{} 但不会重定向到登录页面。
【问题讨论】:
-
您在 createUrl 中缺少控制器:
Yii::$app->getResponse()->redirect(Yii::$app->urlManager->createUrl('site/login')); -
谢谢。但我正在使用 url 管理器,其中我的登录名是用“登录名”引用的,所以不需要使用站点/登录名。
标签: session redirect yii2 timeout components