Когда я создаю cookie, $ response объект может прочитать его отлично, но когда страница обновляется, я получаю пустой массив. Искал примеры в Google и обнаружил, что это должно быть сделано с объектом запроса, но это не работает вообще. У тебя есть идеи, что мне не хватает?
public function indexAction(Request $request) {
$response = new Response();
var_dump($response->headers->getCookies()); //GIVES EMPTY ARRAY
var_dump($request->cookies->all()); //GIVES ONLY PHPSESSID, BUT NOT THE ONE CREATED
var_dump($request->cookies->get('user')); //GIVES NULL
// ... //
if ($loginForm->isValid()) {
$em = $this->getDoctrine()->getManager();
$dql = // ... // ));
$result = $dql->getArrayResult();
if ($result) {
foreach ($result as $profile) {
$cookie = // ... //
$response->headers->setCookie(new Cookie('user', $cookie, $expire = 0, $path = '/', $domain = 'null', $secure = false, $httpOnly = false));
$response->sendHeaders();
}
var_dump($response->headers->getCookies()); //GIVES CORRECT COOKIE OBJECT
var_dump($request->cookies->all()); //GIVES ONLY PHPSESSID, BUT NOT THE ONE CREATED
var_dump($request->cookies->get('user')); //GIVES NULL
}
Вы устанавливаете домен на «ноль» (строка), поэтому, когда вы пытаетесь прочитать его, он не отображается, потому что вы не находитесь в «нулевом» домене. Если вы хотите использовать значения по умолчанию, это должно быть просто null (не строка).
Других решений пока нет …