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

以上

上部へスクロール