2016-11-03 6 views
1

私はちょうどLaravelを使い始めていますが、これを行う方法はわかりません。Laravelのすべてのビューでサイドメニューのデータを受信

私は中になりますtipicalサイドメニューを持っているほぼすべてのそうのように表示します。

  @foreach($lastRecipes as $lastRecipe) 
       <div class="side-lastRecipes"> 
        {{lastRecipe->name}} 
       </div> 
      @endforeach 
:私はこれを行うために、私のインデックスビューで

Side Menu

私は問題はありません。

これはルート/コントローラ内にあります:

IndexController

"with"を使用してDBをすべてのビューで取得する必要がありますか?

 return view('welcome') 
    ->with("lastRecipes",$lastRecipes); 

私は他のコントローラからこの方法getSideMenu呼び出すことについて考えたが、私はlaravelは静的な機能を持っていないし、あなたがファサードを使用する必要がありますが、これは良い習慣である場合、私は知らないか、最高があることを読んでこのサイドメニューを処理する方法。

ありがとうございました!

答えて

1

boot()機能であなたに次のコードを追加します。

+0

ありがとう、これは私が探していたものです。私は "使用App \ Recipe"を追加しなければならなかった私の場合はトップに。 – user3284923

+0

幸せに助けてください:D –

0

この質問は少し曖昧です。なぜなら、すべてのコントローラーが単一の責任原則に対処しなければならないからです。私はfを意味します。 HomeControllerには、navbar、サイドバーのフッターなどの部分的な部分を含むHomeControllerがあります。すべてのページをレンダリングするコントローラーが1つしかありません(FrontControllerとも呼ばれます)連絡先をレンダリングする連絡方法、私たちのセクションについてレンダリングするaboutusメソッドなどがあります。 HomeControllerの責任はページをレンダリングすることです。 あなたのページにデータを送信するコンタクトフォームがある場合は、リクエストを受け取るContactFormsControllerと、メソッドを持つインデックスがあります。連絡先にはメソッドなどがあります。 AsあなたはLaravelで始まったと言いました。あなたの質問に答えるために、たくさんのものをあなたのために行う偉大なPHPフレームワークがあります。あなたがEloquentを持っているので、実際にはパフォーマンスに影響しません。キャッシュとブレードキャッシュがありますので、心配はありません。 一方、すべてのページに「部分または部分」を共有する必要がある場合は、https://laravel.com/docs/5.3/views#view-composersが表示されますが、とにかく今すぐ使用することをお勧めします。他のもの。 lastRecipesする必要がありますあなたのケースではkey

\View::share('key', 'value'); 

valueはあなたが望むものを共有することにする必要があります:あなたのApp\Providers\AppServiceProviderクラスで

関連する問題