1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Laravel session保存と削除の方法

Last updated at Posted at 2024-03-06

sessionについて

  • ざっくりで言うとデータを一時的に保存して、他のページでもデータを共有可能な仕組み

実際にsessionを使ってみる

  • 今回は何かの申請処理後に表示される画面が何度も同じURLでアクセス出来ないように、申請処理があった場合のみ表示されるような用途で使ってみます
    • 申請処理時にsessionを保存
    • sessionがある時のみ申請完了画面を表示してそのsessionを削除する
    • sessionがない場合は別のページにリダイレクトさせるようにする

sessionを保存


 // コントローラ

    public function application(Request $request)
    {
        $request->session()->put('application', true);

        return redirect()->route('foods.completion');
    }

sessionを取得と削除


 // コントローラ

    public function completion(Request $request)
    {
        // session有無チェック、ある場合viewを表示、無い場合foods.main画面にリダイレクト
        if ($request->session()->get('application') === true) {
            $request->session()->forget('application');
        } else {
            return redirect()->route('foods.main');;
        }
        return view('foods.completion');
    }

上記ではforget()を使ってsession「application」削除しているため、foods.completionの画面でページリロードをすると「foods.main」画面に遷移します。
今回だとcompletion()の処理を挟んだ状態つまり、session「application」が無いとviewが表示されない設計にしてあります

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?