我在删除 Laravel 5.6 中的 cookie 时遇到问题。我已经尝试了基于this、this、this和this question 的各种不同的东西,但它们都不起作用;
1.
return response()
->redirectToRoute('home')
->withCookie(Cookie::forget('code'))
->withCookie(Cookie::forget('email'));
Run Code Online (Sandbox Code Playgroud)
2.
Cookie::queue(Cookie::forget('code'));
Cookie::queue(Cookie::forget('email'));
return redirect('/');
Run Code Online (Sandbox Code Playgroud)
3.
Cookie::queue('code', null, -1);
Cookie::queue('email', null, -1);
return redirect('/');
Run Code Online (Sandbox Code Playgroud)
4.
return redirect('/')
->withCookie(cookie('code', '', -1))
->withCookie(cookie('email', '', -1));
Run Code Online (Sandbox Code Playgroud)
5.
return response()
->redirectToRoute('home')
->withCookie(cookie('code', '', -1))
->withCookie(cookie('email', '', -1));
Run Code Online (Sandbox Code Playgroud)
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);
Run Code Online (Sandbox Code Playgroud) 有谁知道Laravel是否有一种可以忘记所有cookie(对我的Web应用程序而言全部)的方法?我知道我可以通过这样做摆脱一个问题,Cookie::forget('mycookie')但是如果我有十几个问题,而我却想全部忘掉怎么办?
是否有一个简单的单行命令,诸如此类Cookie::forgetAll()?还是我只需要遍历我所有的cookie并一一忘掉它们?
谢谢!
PS-我使用的是Laravel 4.1.28,但如果有任何不同,会很高兴将其更新为最新版本。