yii2 session的使用方法

yii2打開sessionphp

use  yii\web\Session; $session = Yii::$app->session; // check if a session is already open if ($session->isActive) ... // open a session $session->open(); // close a session $session->close(); // destroys all data registered to a session. $session->destroy(); 設置session $session = Yii::$app->session; $session->set('user_id', '1234'); //OR $session['user_id'] = '1234'; //OR $_SESSION['user_id'] = '1234'; 讀取session $session = Yii::$app->session; $user_id = $session->get('user_id'); //OR $user_id = $session['user_id']; //OR $user_id = isset($_SESSION['user_id']) ? $_SESSION['user_id'] : null; 銷燬session $session = Yii::$app->session; $session->remove('user_id'); //OR unset($session['user_id']); //OR unset($_SESSION['user_id']); 數組session的讀取與設置 $session = Yii::$app->session; $session['user'] = [ 'id' => 1, 'username' => 'yiiuser', ]; echo $session['user']['id']; echo $session['user']['username']; $session['user.id'] = 1; $session['user.username'] = 'yiiuser';


官網上的用法

首先,在Yii框架中,你不須要像標準PHP代碼那樣使用session_start(),
在 Yii 框架中,autoStart 屬性缺省被設置爲true,因此,
雖然沒有使用 session_start(),你仍然可使用 $_SESSION 全局變量,但最好使用
Yii框架封裝的 Yii::app->session:web

 

設置session變量:Yii::app()->session['var']='value';
使用: echo Yii::app()->session['var'];
移除:unset(Yii::app()->session['var']);數據庫

 

更爲複雜一點的使用時如何配置你的session
配置項可設在 protected/config/main.php的components中:數組

 
'session'=>array( 'autoStart'=>false(/true), 'sessionName'=>'Site Access', 'cookieMode'=>'only', 'savePath'='/path/to/new/directory', ), 
 

將session保持在數據庫的設置:服務器

 
'session' => array ( 'class' => 'system.web.CDbHttpSession', 'connectionID' => 'db', 'sessionTableName' => 'actual_table_name', ), 
 

好,還有什麼呢?對了,爲了調試,有時須要知道當前用戶的session ID,
該值就在 Yii::app()->session->sessionID 中。yii2

 

最後,當用戶退出登陸(logout),你須要消除痕跡,可以使用:
Yii::app()->session->clear() 移去全部session變量,而後,調用
Yii::app()->session->destroy() 移去存儲在服務器端的數據。cookie

相關文章
相關標籤/搜索