2017-09-07 11 views
-1

メインテンプレートhome.blade.phpには、別のコンテンツファイルが置かれたセクションが含まれています。すべてのページにメニューを表示する方法Laravel?

このファイルには、サイドバーメニューがあります。

また、私はメニュー項目を表示するためにカスタムclass Menuを持っています。

このカスタムクラス/サービスは、プロジェクトの全ページに表示されます。

各コントローラクラスにclass Menuというインスタンスを作成したくありません。

+0

を拡張するために、このLaravelドキュメントをチェックアウト:https://laravel.com/docs/5.4/bladeは – GoogleMac

答えて

1

Laravel's View :: share()メソッドが必要です。あなたは別々のファイルmenu.blade.phpを作成し、このファイル内のメニューコードを書き、 は、他のファイルにmenu.blade.phpを含め、あなたのAppServiceProviderクラスでクラスをインスタンス化し、すべてのあなたの意見https://laravel.com/docs/5.5/views#sharing-data-with-all-views

+0

使用することをお勧めは何ですか:ビュー作曲やシェア見る?両方のシングルモデルをサポートしていますか? – user3573738

+0

これは互換性のあるものです(私はすべてのものに対してshare()を使います)が、ビューの作曲家はクラスのインスタンス化に適しているようです。 –

+0

コードの例と、これを書いて使い方を共有することはできますか?ドキュメントに十分な情報がないため – user3573738

1

に利用できる変数を作ることができますこのような。 使用これは、コードに

@extends(「メニュー」)

関連する問題