Я пытаюсь установить cookie для сохранения выбора локали.
Используя событие kernel.response
, я сделал это:
public function setCookie(FilterResponseEvent $event) {
/** @var Response $response */
$response=$event->getResponse();
$cookie=new Cookie('_locale', $event->getRequest()->attributes->get('_locale'), strtotime('now + 1 year'), '/', $event->getRequest()->getHttpHost());
$response->headers->setCookie($cookie);
}
_locale
, если он не существует,устанавливается из события kernel.request
.
Проблема заключается в том, что после получения ответа в веб-браузере куки не установлены.
Его даже нет в дампе ответа.
свалка веток
ParameterBag {#13 ▼
#parameters: array:2 [▼
"PHPSESSID" => "5aulgi7dbut4mfjmpgvc48cr2o"
"REMEMBERME" => "QXBwQnVuZGxlXEVudGl0eVxVc2VyOmNISmxZMmxsYkM1bllXMWxjMEJuYldGcGJDNWpiMjA9OjE1NTAzMzM1OTM6ODFiNTllMmU0MDA4YjdiOWU1Y2Q0ZjJlN2E4Y2ExZWUxOTdkOWE1YjIxNDA0NDdmZTU2MGRj ▶"
]
}
HeaderBag {#16 ▼
#headers: array:11 [▼
"cookie" => array:1 [▼
0 => "PHPSESSID=5aulgi7dbut4mfjmpgvc48cr2o; REMEMBERME=QXBwQnVuZGxlXEVudGl0eVxVc2VyOmNISmxZMmxsYkM1bllXMWxjMEJuYldGcGJDNWpiMjA9OjE1NTAzMzM1OTM6ODFiNTllMmU0MDA4YjdiOWU1Y2Q0ZjJlN2E4Y2ExZWUxOTdkOWE1YjIxNDA0NDdmZTU2MGRjOGFiMTAwOWZhZA%3D%3D ◀"
]
]
}
"Интересный факт", хотя, если я добавлю dump($event); exit();
после $response->headers->setCookie($cookie);
, я смогу увидеть свой файл cookie в event.response.headers
kernel.response dump
FilterResponseEvent {#995 ▼
-response: Response {#903 ▼
+headers: ResponseHeaderBag {#994 ▼
#cookies: array:1 [▼
"sphere.gdn" => array:1 [▼
"/" => array:1 [▼
"_locale" => Cookie {#154 ▼
#name: "_locale"
#value: "en"
#domain: "sphere.gdn"
#expire: 1581376164
#path: "/"
#secure: false
#httpOnly: true
-raw: false
-sameSite: null
}
]
]
]
}
}
Мои события прослушивателя обнаружены Symfony
Registered Listeners for "kernel.request" Event
===============================================
------- ------------------------------------------------------------------------------------------------- ----------
Order Callable Priority
------- ------------------------------------------------------------------------------------------------- ----------
#10 AppBundle\Service\LocaleHandlerService::setLocale() 0
------- ------------------------------------------------------------------------------------------------- ----------
Registered Listeners for "kernel.response" Event
================================================
------- -------------------------------------------------------------------------------------------- ----------
Order Callable Priority
------- -------------------------------------------------------------------------------------------- ----------
#1 AppBundle\Service\LocaleHandlerService::setCookie() 0
------- -------------------------------------------------------------------------------------------- ----------
Может кто-нибудь подсказатьчто мне не хватает, чтобы установить мое печенье?