Yii2的Cookie主要是通過yii\web\Request
和yii\web\Response
進行操作
- 通過
\Yii::$app->response->getCookies()->add()
添加Cookie - 通過
\Yii::$app->request->cookies
讀取Cookie.
① 添加Cookie
- //第一種方法
- $cookie = new \yii\web\Cookie();
- $cookie -> name = 'smister'; //cookie的名稱
- $cookie -> expire = time() + 3600; //存活的時間
- $cookie -> httpOnly = true; //無法通過js讀取cookie
- $cookie -> value = 'cookieValue'; //cookie的值
- \Yii::$app->response->getCookies()->add($cookie);
- //第二種方法
- $cookie = new \yii\web\Cookie([
- ‘name’ => ‘smister’,
- ‘expire’ => time() + 3600,
- ‘httpOnly ’ => true,
- ‘value’ => ‘cookieValue’
- ]);
- \Yii::$app->response->getCookies()->add($cookie);
② 讀取Cookie
- $cookie = \Yii::$app->request->cookies;
- //返回一個\yii\web\Cookie對象
- $cookie->get(‘smister’);
- //直接返回Cookie的值
- $cookie->getValue(‘smister’); //$cookie[‘smister’] 其實這樣也是可以讀取的
- //判斷一個Cookie是否存在
- $cookie->has(‘smister’);
- //讀取Cookie的總數
- $cookie->count();//$cookie->getCount();跟count一樣
③ 刪除Cookie
- $cookie = Yii::$app->request->cookies->get(‘smister’);
- //移除一個Cookie對象
- \Yii::$app->response->getCookies()->remove($cookie);
- //移除所有Cookie,目前好像不太好使
- \Yii::$app->response->getCookies()->removeAll();
在這裏給大家普及一個小知識,我們在進行第一次存取cookie的時候,會取不到cookie,必須是第二次刷新頁面,纔可以取到coo
kie,爲什麼呢?