DukeAnn
做一个优雅的程序员

Yii2中删除通过框架生成的cookie

最近在开发PHPChina,发现Yii这个王八蛋真是操作花哨,自己

Yii::$app->response->cookies

生成的cookie在

Yii::$app->request->cookies

只能是只读的,在

Yii::$app->response->cookies

中用 remove() 还删不掉,报错:The cookie collection is read only

敲黑板了,导致上面直接删不掉的原因是因为设置cookie时没设置有效时间
如下设置就可以了:

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

        // 在要发送的响应中添加一个新的cookie
        $cookies->add(new \yii\web\Cookie([
            'name' => 'test',
            'value' => $mUid,
            'domain' => $cookiedomain,
            'path' => $cookiepath,
            'expire' => time()+3600,
        ]));
// 清除cookie
        $cookies = Yii::$app->request->cookies;
        if ($cookies->has('test')) {
            // response
            Yii::$app->response->cookies->remove('test');
        }
DukeAnn的笔记本:DukeAnn的博客 » Yii2中删除通过框架生成的cookie
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址