菜鸟CK 2016-07-08 21:56:38 22901次浏览 2条评论 16 4 0

一、Cookie

Yii2的cookie主要通过yii\web\Request和yii\web\Response来操作的。
通过\Yii::app->response->getCookies()->add($cookie)来添加cookie。
通过\Yii::app->request->cookies读取cookie

(一)、添加一个cookie
方法一:
$cookie = new \yii\web\Cookie();
$cookie->name = 'name';                //cookie名
$cookie->value = 'value';              //cookie值
$cookie->expire = time() * 3600;       //过期时间
$cookie->httpOnly = true;              //是否只读
\Yii::$app->response->getCookies()->add($cookie);
方法二:
$cookie = new \yii\web\Cookie([
        'name' => 'name',
        'value' => 'value',
	'expire' => time() + 18000,
	'httpOnly' => true
]);
\Yii::$app->response->getCookies()->add($cookie);  

(二)、读取一个Cookie
$cookie = \Yii::$app->request->cookies;
$cookie->has('name');			//判断cookie是否存在
$cookie->get('name');			//get()方法读取cookie
$cookie->getValue('name');		//getValue()方法读取cookie
$cookie->count();			//获取cookie个数
$cookie->getCount();			//获取cookie个数  

(三)、删除一个Cookie
$name = \Yii::$app->request->cookies->get('name');
\Yii::$app->response->getCookies()->remove($name);  

(四)、删除全部Cookie
\Yii::$app->response->getCookies()->removeAll();

二、Session

yii2的session通过yii\web\Session实例的session应用组件来访问。

$session = \Yii::$app->session;
(一)、添加一个session
$session->set('name_string','value');
$session->set('name_array',[1,2,3]);  

(二)、读取一个session
$session->get('name_string');
$session->get('name_array');  

(三)、删除一个session
$session->remove('name_array');  

(四)、删除所有session
$session->removeAll();
觉得很赞
  • 评论于 2016-10-16 22:58 举报

    感谢 简单明了

  • 评论于 2016-10-16 23:07 举报

    设置cookies应该是直接add就行了 不用getCookies()

    $cookies= \Yii::$app->response->cookies;
    $data=[
            'name'=>'789',
            'value'=>'45613'
    ];
    $cookies->add(new Cookie($data));
    

    这样也行

您需要登录后才可以评论。登录 | 立即注册