こんにちは、さるまりんです
LaravelでWebサイトを開発中、全てのページ(ビュー)で使いたい変数があります。
例えばサイトにログインしているか?とかログインしている場合はそのユーザーの名前とか。
これをmiddlewareで設定するときはこんな風にします。
view()->share(変数名, 変数)
例えば
view()->share('is_login', $is_login);
view()->share('username', $username);
です。
ビュー(blade)では普通に
{{ $is_login }}
{{ $username }}
で使えます。
Middlewareで設定した変数をコントローラのアクション内で使いたい時もあります。
そのときはこうして参照します。
view()->shared(変数名)
こんな感じです。
$is_login = view()->shared('is_login');
共通処理をうまく作ると便利ですが、どこに何があるかわからなくならないように、ちゃんと管理しておかない迷子になってしまいそうです。
ちゃんと設計して文章として残すことも重要ですね。
読んでくださってありがとうございました。
それではまた!