当从一个动作重定向到另一个动作时,Yii2会话持续存在

时间:2015-09-03 03:35:52

标签: php session yii yii2 yii2-advanced-app

使用Yii2框架:

下面的代码会创建一个无限循环。

任何人都可以解释我如何在重定向时保持会话数据?

我已经检查过并且没有传输数据,但会话数据在searchuser中正确设置。

public function actionSearchUser()
{
    $session = \Yii::$app->session;
    $session->open();

    $session->set('admin.currentuser.id', "This worked out ok");

    return $this->redirect(['site/modify-user']);
}

public function actionModifyUser()
{

    $session = \Yii::$app->session;
    $session->open();

    if( !($session->has('admin.currentuser.id')) ) 
    {
          return $this->redirect(['site/search-user']);
    }
    else return $this->render('modifyUser');
}

这是我设置会话的地方:

    'session'=>array(
        'class' => 'yii\web\Session',
        'name' => 'SESSIONNAME',
        'timeout' => 86400,
        'savePath' => '/path/to/sessions',
        'useCookies' => true,
        'cookieParams' => array(
            'lifetime' => 86400,
            'path' => '/',
            'domain' => 'localhost', 
        ),
    ),

1 个答案:

答案 0 :(得分:1)

我的问题是域名(我知道,我很蠢)。

我有一个自定义域名(n099y.local)所以我需要将cookie域从localhost更改为n099y.local,一切都很好。

它显示了页面上所有正确的会话数据,直到我再次丢失数据时再转到另一个页面,因为cookie域与我所在的域不匹配。