问题YII2会话销毁不起作用

时间:2018-08-31 00:35:16

标签: session yii2

我有问题。 在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));,但是仍然得到值。帮帮我,为什么这次会议销毁无法正常工作?

1 个答案:

答案 0 :(得分:-1)

尝试: 更改

Yii::$app->session->destroy();

Yii::$app->getSession()->destroy();

如果要删除确切的会话,则必须使用:

Yii::$app->session->remove('name')