3

我需要使用 Zend Framework 3 向浏览器发送一个 cookie。

我的代码如下,但它不起作用:

$cookie = new Zend\Http\Header\SetCookie('CookieKey', $val, $time, '/', '');
$response->getHeaders()->addHeader($cookie);

让 cookie 发挥作用的正确方法是什么?

4

1 回答 1

1

创建新实例时,您将 cookie 路径设置为'/'空域并使用空域。将空字符串作为域传递可能会导致问题。''SetCookie

第二个细节是您需要将未来的时间作为第三个 ( expires) 参数传递。你确定你给了未来的时间吗?

看看下面的例子,它在我的 ZF3 应用程序上设置了一个 cookie,没有任何问题:

namespace MyApp\Action;

use Zend\Http\Header\SetCookie; 

public function indexAction()
{
    $cookie = new SetCookie('bar', 'baz', time()+7200);
    $this->getResponse()->getHeaders()->addHeader($cookie);
    return new ViewModel();
}
于 2016-12-27T11:10:01.783 回答