Laravel5でCookieを操作する
Laravel5でCookieを操作してみます。
ウェブアプリケーションではリクエストとレスポンスの動作がセットになり、レスポンス返却時にブラウザがCookieの保存操作をおこないます。
ということで、基本的にはResponseクラスのオブジェクトとセットで設定します。
public function getVote(Request $request, $facilityId) { $showHistories = // なにか。 $response = new Response(view('vote.index')); $response->withCookie(cookie('showHistories', $showHistories, 60*24*30)); return $response; }
取得も簡単です。
$showHistories = Request::cookie('showHistories');
基本はこれでOKなのですが、ServiceやProvider内でCookieをセットしたいケースがあり、この場合Responseとセットにできない状況が発生します。
そういう場合、Cookieファサードを利用してキューに追加することで、次回Responseを返すタイミングでCookieを設定することができます。
class HistoryService { public function sync() { // (略) Cookie::queue(cookie('showHistories', $showHistories, 60*24*30)); } }
以上