Yii2.0中的COOKIE和SESSION用法

字號(hào):


    1、Cookie
    Yii2的Cookie主要是通過(guò)yii/web/Request和yii/web/Response進(jìn)行操作的 ,通過(guò)/Yii::$app->response->getCookies()->add()添加Cookie,通過(guò)/Yii::$app->request->cookies讀取Cookie.
    1)添加一個(gè)Cookie
    <?php
    //第一種方法
    $cookie = new /yii/web/Cookie();
    $cookie -> name = 'smister';//cookie的名稱
    $cookie -> expire = time() + 3600; //存活的時(shí)間
    $cookie -> httpOnly = true; //無(wú)法通過(guò)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) 讀取一個(gè)Cookie
    <?php
    $cookie = /Yii::$app->request->cookies;
    //返回一個(gè)/yii/web/Cookie對(duì)象
    $cookie->get(‘smister');
    //直接返回Cookie的值
    $cookie->getValue(‘smister'); //$cookie[‘smister'] 其實(shí)這樣也是可以讀取的
    //判斷一個(gè)Cookie是否存在
    $cookie->has(‘smister');
    //讀取Cookie的總數(shù)
    $cookie->count();//$cookie->getCount();跟count一樣
    ?>
    3) 刪除Cookie
    <?php
    $cookie = Yii::$app->request->cookies->get(‘smister');
    //移除一個(gè)Cookie對(duì)象
    /Yii::$app->response->getCookies()->remove($cookie);
    //移除所有Cookie,目前好像不太好使
    /Yii::$app->response->getCookies()->removeAll();
    ?>
    4) 注意
    對(duì)Cookie進(jìn)行增刪改時(shí)調(diào)用的response , 對(duì)Cookie讀取時(shí)使用的是Request
    2、Session
    Yii2的Session比較簡(jiǎn)單 ,直接通過(guò)/Yii::$app->session進(jìn)行操作就好了
    1) 添加一個(gè)session
    <?php
    $session = /Yii::$app->session;
    $session->set('smister_name' , 'myname');
    $session->set('smister_array' ,[1,2,3]);
    ?>
    2) 讀取一個(gè)session
    <?php
    $session = /Yii::$app->session;
    //讀取一個(gè)Session
    $session->get('smister_name);
    ?>
    3) 刪除Session
    <?php
    $session = /Yii::$app->session;
    //刪除一個(gè)session
    $session->remove(‘smister_name');
    //刪除所有session
    $session->removeAll();
    ?>
    以上所述是小編給大家介紹的Yii2.0中的COOKIE和SESSION用法,希望對(duì)大家有所幫助