Yii2.0 的COOKIE和SESSION用法
yii2 2017-02-14 10:17:05

1、Cookie

Yii2的Cookie主要是通过yii\web\Request和yii\web\Response进行操作的 ,通过\Yii::$app->response->getCookies()->add()添加Cookie,通过\Yii::$app->request->cookies读取Cookie.

1)添加一个Cookie

PHP Code复制内容到剪贴板
  1. <?php  
  2. //第一种方法  
  3. $cookie = new \yii\web\Cookie();  
  4. $cookie -> name = 'smister';        //cookie的名称  
  5. $cookie -> expire = time() + 3600;     //存活的时间  
  6. $cookie -> httpOnly = true;        //无法通过js读取cookie  
  7. $cookie -> value = 'cookieValue';      //cookie的值  
  8.   
  9. \Yii::$app->response->getCookies()->add($cookie);  
  10.   
  11. //第二种方法  
  12. $cookie = new \yii\web\Cookie([  
  13.     ‘name’ => ‘smister’,  
  14.     ‘expire’ => time() + 3600,  
  15.     ‘httpOnly ’ => true,  
  16.     ‘value’ => ‘cookieValue’  
  17. ]);  
  18.   
  19. \Yii::$app->response->getCookies()->add($cookie);  
  20. ?>  

 

2) 读取一个Cookie

PHP Code复制内容到剪贴板
  1. <?php  
  2. $cookie = \Yii::$app->request->cookies;  
  3.   
  4. //返回一个\yii\web\Cookie对象  
  5. $cookie->get(‘smister’);  
  6.   
  7. //直接返回Cookie的值  
  8. $cookie->getValue(‘smister’); //$cookie[‘smister’] 其实这样也是可以读取的  
  9.   
  10. //判断一个Cookie是否存在  
  11. $cookie->has(‘smister’);  
  12.   
  13. //读取Cookie的总数  
  14. $cookie->count();//$cookie->getCount();跟count一样  
  15. ?>  

 

3) 删除Cookie

PHP Code复制内容到剪贴板
  1. <?php  
  2. $cookie = Yii::$app->request->cookies->get(‘smister’);  
  3.   
  4. //移除一个Cookie对象  
  5. \Yii::$app->response->getCookies()->remove($cookie);  
  6.   
  7. //移除所有Cookie,目前好像不太好使  
  8. \Yii::$app->response->getCookies()->removeAll();  
  9. ?>  

 

4) 注意

对Cookie进行增删改时调用的response , 对Cookie读取时使用的是Request

 

2、Session

Yii2的Session比较简单 ,直接通过\Yii::$app->session进行操作就好了

1) 添加一个session

PHP Code复制内容到剪贴板
  1. <?php  
  2. $session = \Yii::$app->session;  
  3. $session->set('smister_name' , 'myname');  
  4. $session->set('smister_array' ,[1,2,3]);  
  5. ?>  

 

2) 读取一个session

PHP Code复制内容到剪贴板
  1. <?php  
  2. $session = \Yii::$app->session;  
  3.   
  4. //读取一个Session  
  5. $session->get('smister_name);  
  6. ?>  

 

3) 删除Session

PHP Code复制内容到剪贴板
  1. <?php  
  2. $session = \Yii::$app->session;  
  3.   
  4. //删除一个session  
  5. $session->remove(‘smister_name’);  
  6.   
  7. //删除所有session  
  8. $session->removeAll();  
  9. ?>  

 

 

本文来自于:http://www.yoyo88.cn/study/yii2/82.html

Powered by yoyo苏ICP备15045725号