laravel5.8で作ったアプリのリファクタリングを行っています。
ログインユーザーの情報を取得するビューコンポーザーで定義、
サービスプロバイダで使用する設定をしたところ、
「一部のviewファイルでビューコンポーザに定義した変数を取得できない」
状態になっており、悩んでおります。
・起こっている問題
下記コードを読み込んだ場合、
レイアウトviewである「layouts」
todosモデルの情報を表示するページ「todos」ディレクトリのview
この2つのviewでは$userというビューコンポーザーで設定した変数を参照できるのに対し、
ユーザー情報を表示するページ「users」ディレクトリのview
では$userを取得・表示できない
・エラー画面
・参考にした書き方
【Laravel】ビューコンポーザー→サービスプロバイダで設定した変数が利用できない
公式リファレンス(ビュー)
・ComposerServiceProvider
public function boot() { View::composers([ UserComposer::class => 'layouts.*', UserComposer::class => 'users.*', UserComposer::class => 'todos.*' ]); }
・UserComposer
class UserComposer { protected $auth; public function __construct(Guard $auth) { $this->auth = $auth; } public function compose(View $view) { $view->with('user', $this->auth->user()); } }
teratail内にも過去に同様の質問がありますし、
公式リファレンスを元に書き方をいくつか試したのですが・・・。
アドバイスいただけると幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/08 13:51
退会済みユーザー
2020/01/08 14:15
2020/01/08 15:21