19. Đính kèm cookie đến response (Attaching cookie to response) (ok)
https://viblo.asia/p/tap-16-request-laravel-aWj534Y8K6m
Bạn có thể đính kèm mộ cookie đến object Illuminate\Http\Response
bằng cách sử dụng method cookie
. Bạn nên truyền đầy đủ tham số tên, giá trị cookie và thời gian tồn tại của cookie (tính theo phút). Nếu bạn bỏ qua tham số thời gian, Laravel sẽ coi cookie tồn tại như một session.
Method cookie
hoạt động tương tự hàm setcookie
mặc định của PHP. Chính vì vậy nó cũng có thể nhận một số tham số tùy chọn khác.
Ngoài ra bạn có thể sử dụng method queue
trong Cookie
facade. Nói một chút về "queue", nó có nghĩ đen là "xếp hàng". Hiểu một cách đơn giản, thì set cookie "queue" sẽ thực hiện cuối cùng khi đã hoàn tất cả xử lý khác trong request hiện tại. Để hiểu hơn thì chúng ta sẽ đi đến thử nghiệm.
Tại blade view form
, các bạn thay đổi nội dung như sau:
Mình đã inject Cookie
facade để có thể lấy cookie tại blade template. Ngoài ra bên dưới còn có form đển thực thi set cookie thông qua method post
trong FormController
.
Bây giờ các bạn thử đoán xem khi mình click vào nút "Set cookie" thì có hiển thị cookie với tên name
tại route /post
không? Đáp án là "Không", như mình đã nói ở trên, cookie name
được thiết lập bằng phương thức "queue", chính vì vậy nó sẽ thực hiện sau cùng, sau cả lệnh echo
cookie. Nhưng nếu bạn đi đến đường dẫn http:/localhost:8000 thì tại blade view form
, sẽ render cookie mà ta vừa set.
Last updated