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

相关文章
相关标签/搜索