首页 > 解决方案 > 如何根据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

标签: phplaravel

解决方案


试试这种方式。假设您有一个类别模型,并且在您的类别数据库中,您有一个名为 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

试试这个,希望它有效并适合您的使用


推荐阅读