Как сделать боковую панель динамичной в соответствии с меню подменю в лезвии Laravel? - PullRequest
0 голосов
/ 07 октября 2018

Здесь я хочу подменю связанного меню. Но этот код дает все подменю всех меню, добавленных к навигационной панели.

<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

Ответы [ 2 ]

0 голосов
/ 07 октября 2018

Ваш вопрос не имеет всех соответствующих данных, чтобы мы могли вам помочь, но я хотел бы предположить, что ваши отношения между моделями меню и подменю реализованы хорошо (то есть отношение один ко многим ).

Вы можете убедиться в этом, проверив таблицу базы данных на наличие подменю и посмотрев, имеет ли каждая запись подменю правильный идентификатор меню.

Кроме того, вы можете продолжить отладку в своем контроллере, выполнив дамп массива allMenu dd(allMenu).Затем разбейте каждое меню, чтобы увидеть подобъект отношений, чтобы увидеть каждое подменю.

Вы можете прокомментировать для получения дополнительной помощи

0 голосов
/ 07 октября 2018

попробуйте вместо этого.Предполагая, что у вас есть модель для категории, и в вашей базе данных категории у вас был столбец с именем 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

попробуйте, пожалуйста, надеюсь, что это работает и подходит для вашего использования

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...