php - 如何根据laravel刀片中子菜单下的菜单使侧栏动态化?
问题描述
这里我想要相关菜单的子菜单。但是这段代码将所有菜单的所有子菜单添加到导航栏。
<ul>
@foreach($allMenu as $menu)
<ul class="submenu">
@if(isset($menu->submenus))
@foreach($menu->submenus as $submenu)
@if(isset($submenu->page->slug))
<li class="{{ $request->segment(1) == $submenu->page->slug ? 'active' : '' }}"><a href="{{url($submenu->page->slug)}}">{{ $submenu->name}}</a></li>
@else
@endif
@endforeach
@endif
</ul>
@endforeach
解决方案
试试这种方式。假设您有一个类别模型,并且在您的类别数据库中,您有一个名为 parent 的列,如果它的 Null 是主菜单,则它是整数,否则它是子菜单。我将有一个函数来检查我是否有给定的子菜单菜单。
public static function hasSubmenu($id){
$sub = Category::where('parent','=',$id);
if($sub->count()>0){
return true;
}else{
return false;
}
}
首先,我会得到这样的所有主菜单
<?php $mainMenus = Category::where('parent','=',null)->get();?>
@foreach ($mainMenus as $mainMenu)
<ul>
<li>{{$mainMenu->name}}
@if(Category(hasSubmeny($mainMenu->id)))
<ul id="submenu">
<?php $subMenus = Category::Where('parent','=',$mainMenu->id)?>
@foreach($subMenus as $subMenu)
<li>{{$submenu}}</li>
@endforeach
</ul>
@endif
</li>
</ul>
@endforeach
试试这个,希望它有效并适合您的使用
推荐阅读
- java - 如何在 dockerized Spring Boot 应用程序中启用 https(找不到 PKCS12)
- ruby-on-rails - 无法检测到 rake 任务,NameError: undefined local variable or method 'config' for main:Object
- input - sas数据集中具有相同名称的不同变量
- ios - ios Objective-c架构arm64的重复符号
- asp.net-mvc - 交换部署槽时如何刷新 Azure 应用服务缓存
- java - 如何在回收器适配器中初始化侦听器?
- function - 函数到 Lambda 转换
- javascript - 如何将对象作为数据类型传递给 sequilize 中的数据模型?
- javascript - 如何更新地图键?
- sql - SQL插入到哪里