概述
這裡隻是簡單講一下用法,如果想更詳細的了解,去看 官方手冊 比較好。
和請求和響應類似, 預設可通過為yii\web\Session 執行個體的session 應用元件 來通路sessions。
利用Yii操作session
// 首先,加載session元件
$session = Yii::$app->session();
// 檢查session是否開啟
if($session->isActive){
// session已經打開
}
// 開啟session
$session->open();
// 設定name的session值為張三
$session->set('name','張三');
// 跟以下語句效果相同
$_SESSION['name'] = '張三';
// 擷取session中name的值
$session->get('name','my');
// 擷取時,會自動打開session,無需手動。而且如果name值不存在時,會預設輸出'my'
// 移除session中的name變量
$session->remove('name');
// 移除全部的session變量
$session->removeAll();
// 檢視session是否存在name變量
$session->has('name');
// 關閉session
$session->close();
// 銷毀session中所有已經注冊的資料
$session->destroy();
Flash 資料
簡單介紹
Flash資料是一種特别的session資料,它一旦在某個請求中設定後, 隻會在下次請求中有效,然後該資料就會自動被删除。 常用于實作隻需顯示給終端使用者一次的資訊, 如使用者送出一個表單後顯示确認資訊。
實作方式
// 首先,加載session元件
$session = Yii::$app->session();
// 設定名為'success' flash 資訊
$session->setFlash('success','This is success!');
// 擷取并顯示'success' flash 資訊
echo $session->getFlash('success');
// 檢視'success' flash 資訊是否存在
if($session->hasFlash('success')){
// 存在,判斷後,自動删除
}
// 擷取所有的 flash 資訊
$data = $session->getAllFlashes();
// 移除 'success' flash 資訊
$session->removeFlash('success');
// 移除所有的 flash 資訊
$session->removeAllFlash();
// 首先,加載session元件
$session = Yii::$app->session();
// 設定名為'success' flash 資訊
$session->setFlash('success','This is success!');
// 在名稱為"success"的flash資訊增加資料
$session->addFlash('success','I love you!');
$session->addFlash('success','I miss you!');
$session->addFlash('success','I want you!');
// 擷取并顯示'success' flash 資訊
$data = $session->getFlash('success');
var_dump($data);
/* 會以數組的方式呈現
array(4) {
[0]=> string(16) "This is success!"
[1]=> string(11) "I love you!"
[2]=> string(11) "I miss you!"
[3]=> string(11) "I want you!"
}*/