Yii2 cookie操作解析

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组件里的读取操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值