无法在Yii2中获取Cookie值

Mav*_*ick 2 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); 
Run Code Online (Sandbox Code Playgroud)

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

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

谁能让我知道我在做什么错???

非常感谢

M.

soj*_*oju 5

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

if(Yii::$app->getRequest()->getCookies()->has('cookie_name')){
}
Run Code Online (Sandbox Code Playgroud)

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

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