我试图在每次页面加载时设置一个cookie。我做了一些研究,发现事件订阅者是必经之路。 我用事件创建了一个自定义模块。它在每次页面加载时启动事件,但问题出在Cookie上。
$ event对象具有称为response的属性,但始终为null。 因此,我无法设置任何cookie。
class LanguageCookieSubscriber implements EventSubscriberInterface
{
protected $event;
protected $cookieValue;
public function init(GetResponseEvent $event) {
$this->event = $event;
$cookie = new Cookie("client_language_cookie", $this->cookieValue, 0, '/', NULL, FALSE);
$this->event->getResponse()->headers->setCookie($cookie);
}
}
我也尝试设置响应对象。然后,我可以设置cookie,但是页面将变为空白。
$response = new Response();
$this->event->setResponse($response);
$cookie = new Cookie("client_language_cookie", $this->cookieValue, 0, '/', NULL, FALSE);
$this->event->getResponse()->headers->setCookie($cookie);
任何想法我该如何解决?我需要显示用户请求的页面,并且只设置cookie。
谢谢。