【发布时间】:2016-03-08 05:30:48
【问题描述】:
我对 laravel 5.1 框架有点陌生。最近几天,我为要创建的动态菜单创建了数据库(插入、更新、删除)。我连接到我放置菜单的默认布局。从路由代码看起来是这样的。
View::composer('layouts.default',function($view){
$menus = Menu::where('parent_id',0)->orderBy('order')->get();
$submenus = Menu::where('parent_id','!=',0)->get();
$view->with(compact('menus','submenus'));
});
主菜单中有 parent_id = 0 的项。子菜单项有 parent_id = id,依此类推。
我想正确显示,但是当我悬停没有项目的主菜单项时,会出现 css 块,因为如果条件我没有做好。有没有办法做到这一点?
视图中的代码如下所示。
@foreach($menus as $menu)
<li class="dropdown {!! (Request::is('typography') || Request::is('advancedfeatures') || Request::is('grid') ? 'active' : '') !!}"><a href="#" class="dropdown-toggle" data-toggle="dropdown"> {!! $menu->title !!}</a>
<ul class="dropdown-menu" role="menu">
@foreach($submenus as $submenu)
@if($submenu->parent_id === $menu->id)
<li><a href="{{ URL::to('typography') }}">{!! $submenu->title !!}</a>
@foreach($submenus as $smenu)
@if($smenu->parent_id === $submenu->id)
<ul class="dropdown-submenu" role="menu">
<li><a href="{{ URL::to('typography') }}">{!! $smenu->title !!}</a>
</li>
</ul>
@endif
@endforeach
</li>
@endif
@endforeach
</ul>
</li>
@endforeach
还有一个问题是如何从 Menu model 中只取一个值,例如 id 可以用来指向一个子菜单。
最好的问候!
【问题讨论】:
标签: php css foreach menu laravel-5.1