🧚♀️
flash()が分からなかった、セッション
フラッシュメッセージの表示に、なぜセッションメソッドが使われているのか分からなかった
セッション: アプリはステートレス(記憶を持たない)だけど、セッションでデータの保存ができる。
index.blade.php
View
<div class="container">
@if (session('feedback.success'))
<div class="alert alert-success" role="alert">
{{ session('feedback.success') }}
</div>
@endif
DeleteController.php
~~~~
return redirect()
->route('tweets.index'
->with('feedback.success', 'つぶやきを削除しました');
}
セッションデータの操作方法
①Requestインスタンスを介してセッションにアクセス
ルートクロージャ(無名関数)かコントローラーメソッドでタイプヒント(型)を使って取得できる
class UserController extends Controller
{
public function show(Request $request, $id)
{
$value = $request->session()->get('key');
}
②グローバルセッションへルパ
sessionPHP関数を利用して、セッション内のデータの取得・保存
sessionへルパ関数を文字列引数で呼び出すと、セッションキーの値を返す
セッションは、配列でキーと値のペア関係
セッションにデータを保存
- リクエストインスタンス経由
$request->session()->put('key', 'value'); - グローバルな"session"ヘルパ経由
session(['key' => 'value']);
Discussion