ZF2 setCookie无法正常工作

时间:2016-09-21 13:38:16

标签: php cookies zend-framework2

有一段时间我想弄清楚为什么通过ZF2设置cookie似乎很难?可能它不是,但我无法弄清楚为什么没有设置cookie。

代码

use Zend\Http\Header\SetCookie;

    $response        = $this->getResponse()->getHeaders();
    $cookiesAccepted = new SetCookie('accepted_cookies', 1, strtotime('+1 Year', time()), '/');
    $cookieTest      = new SetCookie('test_key', 'test_value', strtotime('+1 Year', time()), '/');
    $response        ->addHeader($cookiesAccepted);
    $response        ->addHeader($cookieTest);

刷新页面。

按转储测试输出

Debug::dump($_COOKIE);

不包含' accepted_cookies'或者' test_key' cookie中。

1 个答案:

答案 0 :(得分:1)

您在响应对象中设置了Cookie,并且转储$_COOKIE不会立即为您提供添加到响应对象中的Cookie。

在Zend Framework 2中使用cookie时,无需直接与超级全局交互。另请检查the documentation for reference

您可以在下一个请求对象中尝试这样做:

$accepted_cookies = $this->getRequest()->getHeaders()->get('Cookie')->accepted_cookies;
$test_key = $this->getRequest()->getHeaders()->get('Cookie')->test_key;

另请查看this answer以获取有关cookie管理的更多示例。