如何使用 Zend Framework 3 添加 cookie?

How add cookie using Zend Framework 3?

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

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

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

如何正确使用 cookie?

您正在将 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();
}