Yii2.0 的COOKIE和SESSION用法
1、Cookie
Yii2的Cookie主要是通过yii\web\Request和yii\web\Response进行操作的 ,通过\Yii::$app->response->getCookies()->add()添加Cookie,通过\Yii::$app->request->cookies读取Cookie.
1)添加一个Cookie
PHP Code复制内容到剪贴板
- <?php
- //第一种方法
- $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);
- ?>
2) 读取一个Cookie
PHP Code复制内容到剪贴板
- <?php
- $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一样
- ?>
3) 删除Cookie
PHP Code复制内容到剪贴板
- <?php
- $cookie = Yii::$app->request->cookies->get(‘smister’);
- //移除一个Cookie对象
- \Yii::$app->response->getCookies()->remove($cookie);
- //移除所有Cookie,目前好像不太好使
- \Yii::$app->response->getCookies()->removeAll();
- ?>
4) 注意
对Cookie进行增删改时调用的response , 对Cookie读取时使用的是Request
2、Session
Yii2的Session比较简单 ,直接通过\Yii::$app->session进行操作就好了
1) 添加一个session
PHP Code复制内容到剪贴板
- <?php
- $session = \Yii::$app->session;
- $session->set('smister_name' , 'myname');
- $session->set('smister_array' ,[1,2,3]);
- ?>
2) 读取一个session
PHP Code复制内容到剪贴板
- <?php
- $session = \Yii::$app->session;
- //读取一个Session
- $session->get('smister_name);
- ?>
3) 删除Session
PHP Code复制内容到剪贴板
- <?php
- $session = \Yii::$app->session;
- //删除一个session
- $session->remove(‘smister_name’);
- //删除所有session
- $session->removeAll();
- ?>