我有问题。 在Yii2中,我有一个视图,控制器和布局。 在布局和视图中,我检查会话是否处于活动状态。 代码是这样的:
if (!isset($session)) $session = Yii::$app->session;
if ($session->isActive && $session->has('username')):
//some code here if there is session echo something
else:
//some code here if there is no session echo something else
endif;
然后我有一个控制器操作,该操作可以销毁会话,但也可以重定向到上面的视图文件,代码如下:
public function actionDestroysess($status = 1) {
Yii::$app->session->destroy();
return $this->render('masuk', ['status' => $status]);
}
问题是,视图中的会话条件返回true,这意味着Yii::$app->session->destroy();
根本不起作用,我试图在destroy命令下面的控制器上var_dump(Yii::$app->session->get('username));
,但是仍然得到值。帮帮我,为什么这次会议销毁无法正常工作?
答案 0 :(得分:-1)
尝试: 更改
Yii::$app->session->destroy();
到
Yii::$app->getSession()->destroy();
如果要删除确切的会话,则必须使用:
Yii::$app->session->remove('name')