我没有找到我的后续kernel.response事件监听器不会在此修改我的响应的原因。你之前是否遇到过这个问题,或者是否有错误印刷线?
上下文:用户将在Symfony3下附加10项访问历史记录。
public function onResponse(FilterResponseEvent $event)
{
$request = $event->getRequest();
if(!$event->isMasterRequest() || !preg_match('#^dm_.*#', $request->get('_route'))){
return;
}
$history = $request->cookies->get('history');
if(!$history)$history = "[]";
$history = json_decode($history, true);
$addon = [
'route' => $request->get('_route'),
'route_params' => $request->attributes->get('_route_params'),
'url' => $request->getRequestUri(),
'date' => new \Datetime
];
$history[] = $addon;
$history = array_slice(
$history,
-10
);
$cookie = new Cookie('history', json_encode($history), time() + 3600);
$response = $event->getResponse();
$response->headers->setCookie($cookie);
}
我添加了一些var_dump(),以检查该事件是否被捕获(它是)。我还测试了在其他地方修改标头,它工作正常。所以,就在这里,我不明白为什么不这样做。