饼干::不要忘记工作laravel 5.1

问题描述 投票:9回答:6

我试图让Laravel 5.1删除我的cookie,但是即使我与我的重定向恢复它,它不会删除。

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

难道我做错了什么?

php laravel laravel-5.1
6个回答
22
投票

也许我错了,但调用Cookie::forget($cookie)时,你可能使用cookie对象来代替饼干的名字。除非$cookie是包含cookie名称的字符串,你应该尝试是这样的:

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

13
投票

我知道这已经是一个老回答的问题,但最近,我来到这里,如果我是正确的,该cookie需要在接下来的回应是“排队”。

您可以通过手动添加的cookie为@ Jan.J在他的回答已经描述的反应做到这一点。但是,如果你需要的内联做,这也可能为你工作:

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

CookieJar会把所有排队的cookies到下一个响应。


4
投票

在我的情况有存储在cookie中的array,所以没有提供方法已经奏效。阵列应删除提供准确对数组的:

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

0
投票

公共职能funname(CookieJar $饼干)

    session()->flush();

$ cookie->队列(饼干() - >忘记( 'USER_EMAIL')); $ cookie->队列(饼干() - >忘记( 'USER_PASSWORD'));

return redirect('/');

0
投票

遗憾的是没有适合我的工作上面的,我不知道是否与此版本Laravel的(5.1)的一个具体问题。

我还是设法得到它的工作使用原始PHP替代,通过与已经过期一个覆盖现有的cookie,我也有指定的路径得到这个工作。它并不像然而使用门面优雅。

setcookie('COOKIE_NAME', time() - 3600, '/');

0
投票

你也可以这样来做:

redirect('/')->cookie(cookie()->forget('my_super_cookie_name'));

0
投票

最近我遇到这个问题,同时还对本地主机,但问题是,我已经写了一些代码,是不是在我的尝试覆盖会话配置文件过程中的正常。因此默认laravel

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

如果你没有做你的session.php文件的配置文件的任何更改都完全正常工作。检查出来,你应该是好去。如果你已经做了一些改动尽量确保你的代码符合标准,一切都应该正常工作。

© www.soinside.com 2019 - 2024. All rights reserved.