无法在Yii2中获取cookie值

时间:2015-01-13 09:36:20

标签: php cookies yii2

我使用代码在页面上设置了Cookie:

$newCookie= new \yii\web\Cookie();
$newCookie->name='cookie_name';
$newCookie->value='test value';
$newCookie->expire = time() + 60 * 60 * 24 * 180;
$cookie=Yii::$app->getResponse()->getCookies()->add($newCookie); 

但是当我在另一个页面上试图检查cookie是否已设置时,我无法获取cookie  价值:

if(Yii::$app->getResponse()->getCookies()->has('cookie_name')){
    if(Yii::$app->getResponse()->getCookies()->getValue('cookie_name')){
        echo "cookie available";die;
    }
}

任何人都可以让我知道我在做什么错误???

非常感谢

微米。

1 个答案:

答案 0 :(得分:4)

您应该使用请求组件来读取cookie:

if(Yii::$app->getRequest()->getCookies()->has('cookie_name')){
}

了解详情:http://www.yiiframework.com/doc-2.0/guide-runtime-sessions-cookies.html

  

yii \ web \ Request和yii \ web \ Response都通过名为cookies的属性维护一组cookie。前者中的cookie集合表示在请求中提交的cookie,而后者中的cookie集合表示将发送给用户的cookie。