2016-05-06 10 views
1

私が行ったこと

私のデータベースからフェッチされたリストがリストにあります。それを "stuff-list"としましょう。ルータには「/stufflist」と表示されます。接続されたコントローラがデータを取り出し、テンプレートに渡します。リストには、他の人の横に唯一のコンポーネントである:私は(ダッシュボード私の場合)他のページにこのリストを表示したい Laravelでコントローラの機能を使用してコンポーネントを再利用する方法

をやりたい

ベストプラクティスとは何ですか?私が/dashboardとタイプすると、当然スタッフリストが含まれていますので、コントローラからのデータはありません。

私はスタッフリストを使用するすべてのテンプレートのすべてのコントローラでデータのフェッチを実装したくありません。リポジトリの種類を実装し、すべてのテンプレートstuff-listを含む?それとももっと良い方法がありますか?

私がしたいことは、そのコンポーネントにバインドされているものとコントローラを表示するコンポーネントを作成することです。たびに、このコンポーネント(すべてのものを表示)をページに含めるたびに、そのコンポーネントの背後にあるすべてのロジックに含める必要があります。

どうすればよいですか? ご協力いただきありがとうございます!

+0

これはちょっと役立ちます。 [Laravelのさまざまなビューで同じデータを渡す](http://stackoverflow.com/questions/22835002/passing-the-same-data-over-different-views-in-laravel?answertab=votes#tab-top )またはthis one [ラーバルビューで別のコントローラのデータを共有するにはどうすればいいですか?](http://stackoverflow.com/questions/26470130/how-can-i-share-data-from-a-different- controller-in-a-laravel-view?answertab = votes#tab-top) または、あなたのブレードテンプレートで '@ inject'で使用されているMethod @haakymを使用してください。 – Devsome

答えて

0

あなたは考えましたService Injection?ブレードテンプレートを使用している場合は、それを利用できます。

のは、スタッフのリストを取得するためのDBとのあなたの相互作用がモデルや、あなたのブレードのテンプレートでこのような何かを行うことができ、専用のクエリクラスのメソッドであるとしましょう:

@inject('stuffList', 'App\Queries\StuffList') 

<div> 
    Monthly Revenue: {{ $stuffList->get() }}. 
</div> 

あなたがすることができます部分的に使用されている部分を抽出し、マスターテンプレートまたは任意のブレードファイルに取り込みます。@include see: Including sub views

+0

多分質問にコメントを付けてください。 – haakym

関連する問題