Yii2 cookie操作解析

原创 2018年04月16日 12:58:02

yii的cookie操作被封装在 cookieCollection cookie集合里

通过集合里的操作有基本的增删查改操作(有序Cookie集合实现了arrayAccess接口,所以也能用数组)

 $cookies = Yii::$app->response->cookies;

        $cookies->add(new Cookie(['name'=>'123456','value'=>'sadasd']));
        $cookies->remove('1234');
        echo $cookies->getValue("123456");
        $cookie = Yii::$app->request->cookies;
//        $cookie->add(new Cookie(['name'=>'123456','value'=>'12345']));

需要注意的是 在request里实现的cookies是只读的方式,所以只能实现cookie的读操作,如果用其他操作会报错
他的载入代码

 public function getCookies()
    {
        if ($this->_cookies === null) {
            $this->_cookies = new CookieCollection($this->loadCookies(), [
                'readOnly' => true,//在这里写的只可读
            ]);
        }

        return $this->_cookies;
    }

另外值得注意的是我们在设置cookie时我们会执行一次加密操作。
假如你用js写cookie时我用$cookies->getValue("123456")读取时我读取不了。

因为我读取时我会按照我的加密原则进行解码

所以我们必须先执行

//在读取其他方式设置的cookie时先关闭我们的解码操作
Yii::$app->request->enableCookieValidation= false; 

//要记得关闭之后再开启
Yii::$app->request->enableCookieValidation= true; 

这个方法只在 request里有,response里是没有的,所以我们读取cookie时最好是用Request组件里的读取操作

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_36172443/article/details/79959201

Yii2 ActiveRecord轻松学习

作为yii2中最核心的一种设计模式,ar的使用让你操作数据库变得不能再简单,跟我来,让你的yii2编程速度提升一个维度。
  • 2017年12月28日 10:07

Yii2-设置和获取、删除Cookies空值分析

Yii2-设置和获取Cookies空值或值没有变化 原因: 1.不要使用相同的request url, 否则需要刷新才能获取值 可在不同的动作中设置和调用 2.不要在函数中使用exit来中止...
  • xmlife
  • xmlife
  • 2015-06-26 15:43:52
  • 4801

[YII2] COOKIE的操作使用

PHPcookie的设置 setcookie('username',$data['username'],time()+3600*24*7); YII2cookie的设置 $cookies = Y...
  • mengdc
  • mengdc
  • 2017-08-14 16:00:02
  • 372

为什么yii2 cookie使用起来会失效

当使用:             //保存到COOKIE             $cookiesSet = Yii::$app->response->cookies;   ...
  • u012664888
  • u012664888
  • 2015-07-04 12:43:02
  • 1865

Yii2使用Cookie的注意事项

yii2版本:2.0.7 1.使用Yii::$app->response->cookies的add插入cookie项时,后面代码不能有exit ,die等语句, 如果要exit,die,需要在执行...
  • buyueliuying
  • buyueliuying
  • 2016-07-14 11:54:30
  • 1749

Yii2框架之Cookie加密篇

cookie在发送到客户端之前如果不经任何加密,会很容易被伪造,下面我们来简单介绍下Yii2框架是怎么对cookie进行加密的。$cookie = new yii\web\Cookie([ '...
  • ljfrocky
  • ljfrocky
  • 2015-06-17 17:47:56
  • 2651

yii2 cookie和session的使用

Session use yii\web\Session;session=Yii::session = Yii::app->session; // check if a session is al...
  • qq_31648761
  • qq_31648761
  • 2016-10-09 21:58:30
  • 801

Yii2清除cookie的问题

Yii2清除cookie的问题当我使用yii2往cookie里写数据时,我把domain设置成了根域名,然后我在退出时正常调用了yii2的清除cookie方法Yii::$app->response->...
  • jingze
  • jingze
  • 2015-02-16 23:06:05
  • 1824

二级域名跨域session共享, yii2

转载地址:http://www.cnblogs.com/linzhenjie/archive/2013/01/23/2872541.html 1.利用COOKIE存放session_id();...
  • terry_water
  • terry_water
  • 2015-10-30 17:33:55
  • 2079

yii2教程-登录与自动登录机制解析

简介 yii2的自动登录的原理很简单。主要就是利用cookie来实现的,在第一次登录的时候,如果登录成功并且选中了下次自动登录,那么就会把用户的认证信息保存到cookie中,cookie的有...
  • lhorse003
  • lhorse003
  • 2017-03-27 09:02:01
  • 2780
收藏助手
不良信息举报
您举报文章:Yii2 cookie操作解析
举报原因:
原因补充:

(最多只允许输入30个字)