2015-08-11 23 views
7

Tôi đang cố gắng để có được Laravel 5.1 để xóa cookie của tôi, tuy nhiên nó sẽ không xóa ngay cả khi tôi đang trả lại nó với chuyển hướng của tôi.Cookie :: quên không làm việc laravel 5.1

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

Tôi đã làm gì sai?

+0

Giá trị của $ cookie là gì? –

Trả lời

16

Có thể tôi đã sai, nhưng có thể bạn đang sử dụng đối tượng cookie thay cho tên cookie khi gọi Cookie::forget($cookie). Trừ khi $cookie là một chuỗi chứa tên cookie, bạn nên thử một cái gì đó như thế này:

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

Tôi biết điều này là đã là một cũ và trả lời câu hỏi nhưng tôi đã ở đây gần đây và nếu tôi đúng, cookie cần phải được 'xếp hàng' cho câu trả lời tiếp theo.

Bạn có thể làm điều đó bằng cách thêm cookie theo cách thủ công vào phản hồi như @ Jan.J đã được mô tả trong câu trả lời của anh ấy. Nhưng nếu bạn cần phải làm điều đó inline, điều này cũng có thể làm việc cho bạn:

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

Các CookieJar sẽ vượt qua tất cả các tập tin cookie xếp hàng để đáp ứng tiếp theo.

+1

Bạn đã lưu ngày của tôi. Đây là cú pháp khá bất thường đối với tôi = \ – Victor

4
Cookie::queue(
    Cookie::forget('cookiename') 
); 

này là hoàn hảo, bạn có thể chuyển hướng hoặc trả lại cái nhìn không có lo lắng, nó sẽ tự động xóa cookie

2

Trong trường hợp của tôi có một array lưu trữ trong cookie, vì vậy không ai trong số các phương pháp cung cấp đã từng làm việc . Mảng nên được xóa cung cấp chính xác cặp mảng:

Cookie::queue(Cookie::forget('array_name[provide_key]')); 
Các vấn đề liên quan