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));
}
}
以上





