我在Laravel 5.6中删除Cookie时遇到问题。我根据this,this,this和this问题尝试过各种不同的内容,但这些内容都不起作用;
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);
答案 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')
删除必要的数据。