簡體   English   中英

Laravel:Cookie :: forget()無法正常工作

[英]Laravel: Cookie::forget() not working

我在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中。 我不知道我可以嘗試其他什么方法,因此可以提供任何幫助。

Cookies通常在Laravel中這樣添加:

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

我記得我在使用laravel cookie時遇到了一些問題,最后我決定使用PHP的本機功能手動設置cookie,

設置新的cookie使用此代碼:

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

並使用以下代碼刪除它們:

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

這是處理Cookie的最簡單方法。

在該代碼之后,您可以返回或重定向用戶或執行其他操作

您可以閱讀此頁面以獲取更多詳細說明: https : //www.w3schools.com/php/php_cookies.asp

最終切換到會話而不是cookie,因為據我所問的人說,這更容易使用。 我現在使用Session::flush()Session::forget('key')刪除必要的數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM