shankar bhatt
shankar bhatt

Reputation: 21

How to make one submenu active in laravel blade?

Here I want to make one submenu active out of four submenu. This is for dynamic slug .

<div class="solution_tabs">
   @foreach($allMenu as $menu)
   <ul class="submenu">
      @if(isset($menu->submenus))
      @foreach($menu->submenus as $submenu)
      @if(isset($submenu->page->slug))
      <li class="active"><a href="{{url($submenu->page->slug)}}">{{ $submenu->name}}</a></li>
      @else
      <li><a href="{{url($submenu->page->slug)}}">{{ $submenu->name}}</a></li>
      @endif
      @endforeach
      @endif
   </ul>
   @endforeach
</div>

same as this image,i want one active submenu from dynamic submeun of the menu

Upvotes: 1

Views: 840

Answers (1)

Farid
Farid

Reputation: 772

You should compare the current URL with your link URLs in order to detect coincidences. One way to accomplish it could be injecting request in your blade file, using

@inject('request', 'Illuminate\Http\Request')

and then check for matches like this:

<li class="{{ $request->segment(1) == $submenu->page->slug ? 'active' : '' }}"><a href="{{url($submenu->page->slug)}}">{{ $submenu->name}}</a></li>

Please note that segment() is 0 based, so segment(1) works when your url is like example.com/segment(0)/page->slug

Upvotes: 1

Related Questions