Laravel 5 将数据绑定到 header.blade.php 中菜单的 var

Laravel 5 Bind data to var for menu in header.blade.php

创建菜单的最佳解决方案是什么。 我有 $menudata(来自 dbase 的动态数据)并想将其传递给 heade.blade.php 以生成顶级菜单。

$menudata = Menu::all();

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

我怎样才能做到这一点?最好的方法是什么?

如果菜单在每个页面中都可见,则在任何服务提供商中添加以下内容(例如在 AppServiceProvider 中):

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

然后您可以在任何视图中使用菜单数据,例如

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

AppServiceProvider

boot 方法中添加以下代码
View::composer('*', function($view)
{
    $view->with('menudata', Menu::all());
});

此处,* 表示所有观看次数都将收到 $menudata

现在你可以像这样使用了

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

Laravel-menu 提供了三种开箱即用的渲染方式。但是,您可以使用正确的方法和属性创建自己的渲染方法。

如前所述,laravel-menu 提供了三种开箱即用的呈现格式,asUl()、asOl() 和 asDiv()。您可以阅读详细信息here

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

您还可以通过菜单集合访问菜单对象:

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