こちらの記事は以下の書籍を参考にアウトプットとして執筆しました。
PHPフレームワーク Laravel入門 第2版
セッション
セションについて
セッションはクッキーとDBを組み合わせるのが基本
Laravelではファイルやメモリキャッシュ等でセッションを保存している。
デフォルトではファイルを利用するように設定されている。
セッション操作の基本
- 値に名前をつけて保存する
- 名前を指定して値を取得する
この2つの操作のみ。
値を保存
《Request》->session()->put(キー,値)
セッションファイルの保存先はstorage/framework/sessions
値を取得
$変数=《Request》->session()->get(キー)
DBでセッションを使う
セッションをファイルで管理するとなると、そのうち膨大な数を配置することになる上、読み書きの速度も早いわけではない。
本格的に導入していくならDBを利用する方法に変更すべき
セッションの保存先をDBに変更する
以下のように修正する。
'driver' => env('SESSION_DRIVER', 'database'),
次に.env
のSESSION_DRIVERを修正
SESSION_DRIVER=database
セッション用のテーブルを作成
セッション用のテーブルは決まった形で作る必要があるため、artisanコマンドで作成する。
php artisan session:table
これでセッション用のテーブルを作成するマイグレーションファイルが作成される。
後はマイグレーションを実行してテーブルを生成する
ペジネーション
allで全レコードを取得して表示するのではなく、必要な部分だけを取り出して表示するという処理が必要になる。
ペジネーションはレコードを一定数ごとに取り出して表示していく仕組み。
全レコードをページ分けして表示している。
simplePaginate
DBクラス
simplePaginateメソッドの引数へ指定した数字で1ページあたりの表示レコード数を指定する
$item=DB::table('people')->simplePageinate(5)
上記例では5項目ずつレコードを表示している。
モデルクラス
DBクラス同様simplePaginateが使える
$items=Person::simplePageinate(5)