【Laravel】セッションを使ってクイズデータを順に返すサンプルコード

プロミディア合同会社の斉藤です。

Webアプリケーションで単語帳やクイズ処理を行う場合、問題や回答を都度データベースから取得してくるのはWebサーバーに負荷がかかるので良い方法ではありません。

今回はセッション機能を使い、問題データを取得するのは1回だけで済むサンプルプログラムをご紹介したいと思います。

概要

処理の概要は以下の通りです。
初めて画面を開いた時はデータベースから問題を取得しますが、2問目以降はセッションから取得するようにします。
クライアンPCの画面から「次の問題」リンクに要求する問題番号のパラメータを含めています。

サンプルコードの画面

画面は素っ気なく、最小限の表示にしています。

ソースコードの解説

コントローラ(SessionsController)

コントローラのソースは以下の通り。

初めて開いたかどうかは「$request->next_pos」がnullか否かで判断します。

セッションのキー値が何問目を表、バリュー値に問題と答えをカンマ区切りで入れています。

今回はセッションのサンプルなので、DBから問題データは取得せず、直接入力しました。

ビュー(play.blade.php)

ルーティング(web.php)

サンプルコードの提供

今回解説したソースコードはGitHub上にアップしています。
欲しい方は下記よりダウンロードしてご利用ください。

この記事を書いた人

斉藤 貞義

プロミディア合同会社代表。
会社員として約13年間、ソフトウェア開発の経験を積み2015年にPE-BANKに所属して独立。
システムの受託開発をメインとしながら、プログラミングスクール講師、Udemy講師、アフィリエイトサイト(30代のプログラミングスクール選び)の運営も行っている。