Yii 的session 实现返回上上页面

学习session的页面:http://www.yiichina.com/doc/guide/2.0/runtime-sessions-cookies

关键摘要:

$session = Yii::$app->session;

// 检查session是否开启 
if ($session->isActive) ...

// 开启session
$session->open();

// 关闭session
$session->close();

// 销毁session中所有已注册的数据
$session->destroy();

访问session数据:

$session = Yii::$app->session;

// 获取session中的变量值,以下用法是相同的:
$language = $session->get('language');
$language = $session['language'];
$language = isset($_SESSION['language']) ? $_SESSION['language'] : null;

// 设置一个session变量,以下用法是相同的:
$session->set('language', 'en-US');
$session['language'] = 'en-US';
$_SESSION['language'] = 'en-US';

// 删除一个session变量,以下用法是相同的:
$session->remove('language');
unset($session['language']);
unset($_SESSION['language']);

// 检查session变量是否已存在,以下用法是相同的:
if ($session->has('language')) ...
if (isset($session['language'])) ...
if (isset($_SESSION['language'])) ...

// 遍历所有session变量,以下用法是相同的:
foreach ($session as $name => $value) ...
foreach ($_SESSION as $name => $value) ...

实现访问上上也的关键代码如下

public function actionUpdate($id)
    {
        $model = $this->findModel($id);

        if ($model->load(Yii::$app->request->post()) && $model->save()) {
            if($refer = Yii::$app->session->get('refer')){
                Yii::$app->session->remove('refer');
                //此处保存后,使用之前的session跳转
                return $this->redirect($refer);
            }
            return $this->redirect(['index']);
        } else {
            $session = Yii::$app->session;
            //获取跳转到update页面的链接
            $refer = Yii::$app->request->referrer;
            $session->set('refer',$refer);
            return $this->render('update', [
                'model' => $model,
            ]);
        }
    }
原文地址:https://www.cnblogs.com/jerrypro/p/6746659.html