Cookie:: забудьте не работать laravel 5.1

Я пытаюсь заставить Laravel 5.1 удалить мой cookie, однако он не будет удаляться, даже если я возвращаю его с моим перенаправлением.

return redirect('/voucher')->withCookie(Cookie::forget($cookie));

Я сделал что-то неправильно?

3 ответов


возможно, я ошибаюсь, но вы, вероятно, используете объект cookie вместо имени cookie при вызове Cookie::forget($cookie). Если $cookie - это строка, содержащая имя cookie, вы должны попробовать что-то вроде этого:

return redirect('/voucher')->withCookie(Cookie::forget('cookie_name'));

Я знаю, что это уже старый и отвеченный вопрос, но я недавно попал сюда, и если я прав, cookie должен быть "в очереди" для следующего ответа.

вы можете сделать это, добавив cookie вручную в ответ как @Jan.J уже описан в его ответе. Но если вам нужно сделать это inline, это также может сработать для вас:

Cookie::queue(
    Cookie::forget('cookieName')
);

на CookieJar передаст все куки в очереди к следующему ответу.


в моем случае было array хранится в файле cookie, поэтому ни один из предоставленных методов не работал. Массив следует удалить, предоставив ровно пару массивов:

Cookie::queue(Cookie::forget('array_name[provide_key]'));