2017-08-17 4 views
1

メニューを作成する最適なソリューションは何ですか? 私は$ menudata(dbaseから動的)を持っており、トップメニューを生成するためにheade.blade.phpに渡したいと思っています。Laravel 5 header.blade.phpのメニューのvarにデータをバインドします

$menudata = Menu::all(); 

@foreach($menudata as $value)....... 

どうすれば実現できますか?それを行う最良の方法は何ですか?

+0

は、私はあなたが使用していると思う[Laravelメニュー](https://github.com/lavary/laravel-menu)などメニューのlaravelパッケージ。正しい? –

答えて

1

ここAppServiceProvider

View::composer('*', function($view) 
{ 
    $view->with('menudata', Menu::all()); 
}); 

bootメソッド内のコードの下に追加、*すべてのビューが$menudataを受け取ることを意味します。

今、あなたは

@foreach ($menudata as $menu)..... 
+0

私はこのようなビューを選ぶことができるので、私はこれを選択します:View :: composer( 'partitials.header'、function($ view) \t { \t \t $ view-> with '' menudata '、' 'aaa '、' bbb ']); \t}); Thnx! – Bas

+1

@Bas:あなたを助けてくれてうれしいです。どういたしまして :) –

0

メニュー(例えばAppServiceProviderで)任意のサービスプロバイダーに次のように追加し、すべてのページに表示されている場合:

public function boot() { 
    // ... 
    View::share("menudata",Menu::all()); 
    //... 
} 

次にあなたが任意のビューなどのメニューデータを使用することができます

@foreach($menudata as $value)....... 
0

Laravel-メニューのようにこれを使用することができ、箱から出して3つのレンダリングメソッドを提供します。ただし、適切なメソッドと属性を使用して独自のレンダリング方法を作成できます。

前述のように、laravel-menuには、asUl()、asOl()、およびasDiv()の3つのレンダリング形式が用意されています。詳細についてはhereを読むことができます。

{!! $MyNavBar->asUl() !!} 

また、メニューのコレクションを経由してメニューオブジェクトにアクセスすることができます。

{!! Menu::get('MyNavBar')->asUl() !!} 
関連する問題