创建菜单的最佳解决方案是什么。 我有$ menudata(来自dbase的动态)并希望将它传递给heade.blade.php以生成顶级菜单。
$menudata = Menu::all();
@foreach($menudata as $value).......
我怎样才能实现这一目标?最好的方法是什么?
答案 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() !!}