我试图让Laravel 5.1删除我的cookie,但是即使我与我的重定向恢复它,它不会删除。
return redirect('/voucher')->withCookie(Cookie::forget($cookie));
难道我做错了什么?
也许我错了,但调用Cookie::forget($cookie)
时,你可能使用cookie对象来代替饼干的名字。除非$cookie
是包含cookie名称的字符串,你应该尝试是这样的:
return redirect('/voucher')->withCookie(Cookie::forget('cookie_name'));
我知道这已经是一个老回答的问题,但最近,我来到这里,如果我是正确的,该cookie需要在接下来的回应是“排队”。
您可以通过手动添加的cookie为@ Jan.J在他的回答已经描述的反应做到这一点。但是,如果你需要的内联做,这也可能为你工作:
Cookie::queue(
Cookie::forget('cookieName')
);
该CookieJar
会把所有排队的cookies到下一个响应。
在我的情况有存储在cookie中的array
,所以没有提供方法已经奏效。阵列应删除提供准确对数组的:
Cookie::queue(Cookie::forget('array_name[provide_key]'));
公共职能funname(CookieJar $饼干)
session()->flush();
$ cookie->队列(饼干() - >忘记( 'USER_EMAIL')); $ cookie->队列(饼干() - >忘记( 'USER_PASSWORD'));
return redirect('/');
遗憾的是没有适合我的工作上面的,我不知道是否与此版本Laravel的(5.1)的一个具体问题。
我还是设法得到它的工作使用原始PHP替代,通过与已经过期一个覆盖现有的cookie,我也有指定的路径得到这个工作。它并不像然而使用门面优雅。
setcookie('COOKIE_NAME', time() - 3600, '/');
你也可以这样来做:
redirect('/')->cookie(cookie()->forget('my_super_cookie_name'));
最近我遇到这个问题,同时还对本地主机,但问题是,我已经写了一些代码,是不是在我的尝试覆盖会话配置文件过程中的正常。因此默认laravel
Cookie::queue(
Cookie::forget('name')
) ;
如果你没有做你的session.php文件的配置文件的任何更改都完全正常工作。检查出来,你应该是好去。如果你已经做了一些改动尽量确保你的代码符合标准,一切都应该正常工作。