Yii2 中cookie的用法(2)
设置Cookie PHP setcookie("name", "Larry", time()+3600); Yii2 $cookies = Yii::$app->response->cookies; $cookies->add(new \yii\web\Cookie([ 'name' => 'name', 'value' => 'Larry', 'expire'=>time()+3600 ])); 创建名为"name"的cookie,赋值为"Larry",并且规定该cookie一小时后失效 expire这是一个UNIX时间戳,如果设置为0,或省略,该Cookie将在浏览器关闭时消失 获取Cookie PHP $name=$_COOKIE["user"] Yii2 $cookies = Yii::$app->request->cookies;//注意此处是request $language = $cookies->get('user', 'defaultName');//设置默认值 检查Cookie PHP if(isset($_COOKIE["user"])){ } Yii2 $cookies = Yii::$app->request->cookies; if (isset($cookies['user'])){ } if ($cookies->has('user')){ } if (isset($cookies['user'])){ } 删除Cookie PHP setcookie("user", "", time()-3600);//把失效日期设置为过去1小时 unset($_COOKIE['user']); ###Yii2 $cookies = Yii::$app->request->cookies; $cookies->remove('user'); 常见问题 A.Cookie的key不能含“.” 符号,会被解析成“_”,导致具有以上符号的key获取不到Cookie的bug B.区分Yii2中 Yii::$app->request->cookies 和 Yii::$app->response->cookies 不仔细容易直接复制粘贴了。 1.如果把第一个用来设置Cookie,会报错:`The cookie collection is read only` 2.如果把第二个用来获取Cookie,程序正常执行未发生异常,但会获取不到Cookie,不容易察觉。。。
起点在哪,或许选择不了。重要的是,你追求的终点在哪!