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

时间:2017-08-17 12:45:06

标签: laravel laravel-blade

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

$menudata = Menu::all();

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

我怎样才能实现这一目标?最好的方法是什么?

3 个答案:

答案 0 :(得分:1)

boot

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

此处,*表示所有观看次数均为$menudata

现在您可以像

一样使用它
@foreach ($menudata as $menu).....

答案 1 :(得分:0)

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

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

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

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

答案 2 :(得分:0)

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

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

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

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

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