学习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, ]); } }