Session 如何从php yii2.0组件重定向到页面?
我有一个组件,其中有一个init()函数,在每个操作之前调用它 我只需要检查会话是否过期,然后将用户重定向到登录 这是我的密码, config/main.php组件-Session 如何从php yii2.0组件重定向到页面?,session,redirect,yii2,timeout,components,Session,Redirect,Yii2,Timeout,Components,我有一个组件,其中有一个init()函数,在每个操作之前调用它 我只需要检查会话是否过期,然后将用户重定向到登录 这是我的密码, config/main.php组件- 'MyGlobalClass'=>[ 'class'=>'common\components\MyGlobalClass' ], 及 components/MyGlobalClass.php: class MyGlobalClass extends \yii\base\Component{ p
'MyGlobalClass'=>[
'class'=>'common\components\MyGlobalClass'
],
及
components/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();
}
}
因此,如果{},它将进入内部,但不会重定向到登录页面。您可以使用它发送响应
Yii::$app->response->send();
但请查看控制器/操作不同访问控制指南
您可以尝试以下代码:
Yii::$app->getResponse()->redirect(Yii::$app->urlManager->createUrl('login'));
return;
正确的方法是:
Yii::$app->response->redirect(Yii::$app->urlManager->createAbsoluteUrl('site/logout'));
return;
你可以试试这个,它对我有用:
return Yii::$app->getResponse()->redirect('admin/page/signin');
这样,您将得到一个无限重定向循环:在每次控制器调用时都会调用该组件,重定向将永远不会停止 最好从
公共函数行为()中管理它。
在每个控制器上,请查看上的部分。这可能对您有帮助:)
或
为什么不使用访问控制?createUrl中缺少控制器:
Yii::$app->getResponse()->重定向(Yii::$app->urlManager->createUrl('site/login')代码>谢谢。但我使用的是url管理器,其中我的登录名是“login”,所以不需要使用site/login。嘿,janhavi,谢谢。我也在做同样的事情,但它不起作用。
return Yii::$app->getResponse()->redirect('admin/page/signin');
return Yii::$app->getResponse()->redirect(['user/login']);
return Yii::$app->getResponse()->redirect(Yii::$app->urlManager->createUrl('user/login'));