Laravelでmiddlewareからbladeに変数を渡す方法

こんにちは、さるまりんです

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');

共通処理をうまく作ると便利ですが、どこに何があるかわからなくならないように、ちゃんと管理しておかない迷子になってしまいそうです。

ちゃんと設計して文章として残すことも重要ですね。

読んでくださってありがとうございました。

それではまた!