从一个动作重定向到另一个动作时的 Yii2 会话持久性
Yii2 Session persistance when redirecting from one action to another
使用 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',
),
),
我的问题是域(我知道,我很笨)。
我有一个自定义域 (n099y.local),所以我需要将 cookie 域从 localhost 更改为 n099y.local,一切正常。
它一直在页面上显示所有正确的会话数据,直到我转到另一个页面时数据再次丢失,因为 cookie 域与我所在的域不匹配。
使用 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',
),
),
我的问题是域(我知道,我很笨)。
我有一个自定义域 (n099y.local),所以我需要将 cookie 域从 localhost 更改为 n099y.local,一切正常。
它一直在页面上显示所有正确的会话数据,直到我转到另一个页面时数据再次丢失,因为 cookie 域与我所在的域不匹配。