Laravel:Cookie :: forget()不起作用

时间:2018-05-14 09:05:16

标签: php laravel cookies

我在Laravel 5.6中删除Cookie时遇到问题。我根据thisthisthisthis问题尝试过各种不同的内容,但这些内容都不起作用;

1

return response()
    ->redirectToRoute('home')
    ->withCookie(Cookie::forget('code'))
    ->withCookie(Cookie::forget('email'));

2

Cookie::queue(Cookie::forget('code'));
Cookie::queue(Cookie::forget('email'));

return redirect('/');

3

Cookie::queue('code', null, -1);
Cookie::queue('email', null, -1);

return redirect('/');

4

return redirect('/')
    ->withCookie(cookie('code', '', -1))
    ->withCookie(cookie('email', '', -1));

5

return response()
    ->redirectToRoute('home')
    ->withCookie(cookie('code', '', -1))
    ->withCookie(cookie('email', '', -1));

3,4和5甚至不更改cookie的值,原始值仍保留在cookie中。我不知道我可以尝试其他什么方法,所以任何帮助都会受到赞赏。

通常在Laravel中添加Cookie:

return response()
    ->redirectToRoute($this->handleRedirect($result))
    ->cookie('code', $request->code, $this->duration, null, $this->domain)
    ->cookie('email', $request->email, $this->duration, null, $this->domain);

2 个答案:

答案 0 :(得分:1)

我记得我在使用laravel cookie时遇到了一些问题,最后我决定用PHP的原生函数手动设置cookie,

设置新cookie使用此代码:

setcookie('index', 'value', time() + $secondsToRemember, '/');

并删除它们使用此代码:

setcookie('index', 'Expired', time() - 100000, '/');

这是处理Cookie的最简单方法。

在该代码之后,您可以返回或重定向用户或执行其他操作

您可以阅读此页面以获得更详细的说明: https://www.w3schools.com/php/php_cookies.asp

答案 1 :(得分:0)

根据我问过的人,更容易使用切换到会话而不是cookie。我现在使用Session::flush()Session::forget('key')删除必要的数据。