2017-08-17 55 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

我選擇了這一個,因爲我可以選擇這樣的觀點,查看::作曲( 'partitials.header',函數($視圖) \t { \t \t $視圖 - >與( 'menudata',['AAA ','bbb']); \t});日Thnx! – Bas

+1

@Bas:很高興幫助你。不用謝 :) –

0

如果菜單中的每一頁可見然後添加任何服務提供商(例如,在AppServiceProvider)以下:

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

然後你就可以在任意視圖菜單數據例如

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

Laravel菜單中提供了三種渲染方法開箱。但是,您可以使用正確的方法和屬性創建您自己的渲染方法。

如前所述,laravel菜單提供了三種渲染格式開箱,asUl(),asOl()和asDiv()的。你可以閱讀有關細節here

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

您也可以通過菜單收集進入菜單對象:

{!! Menu::get('MyNavBar')->asUl() !!}