laravel5.5でcookieの設定と取得について
クラウド全盛の昨今でも、個々のブラウザに情報を持たせたい場合がある(ユーザ名の保存とかね!)ので調べてみた。
cookieは画面を表示する時にブラウザ(HDD)に書き込まれるので、laravel的にはreturn response();する必要がある。
web.php
1 2 3 4 5 6 7 |
Route::get('/set_cookie', function(){ // 文字列だけ返す return response('Hello Cookie')->cookie( // その時にcookei(key=value)をセット(foreverって書いてあるけど、5年保存) cookie()->forever("cookie_name","12345") ); }); |
cookieを見るには、chrome拡張のEditThisCookieが便利(Chromeの再起動が必要)
ただし、Laravelフレームワークが作成するクッキーは全て暗号化されていてるので、中身は確認できない…。
cookieの取得は簡単なので、ブラウザからURL指定でも良いかも?
1 2 3 4 |
Route::get('/get_cookie', function(){ return \Cookie::get('cookie_name'); }); }); |
画面遷移を伴わないけど、クッキーに値を入れておきたい!
って時にはキューに入れておくと、次のブラウザ表示の時にクッキーを仕込んでおいてくれる。
1 |
Cookie::queue(cookie()->forever("username",$data['username'])); |