We can achieve this in several way , but i would like to share this below approach because it is very simple,easy and more readable.
This example utilizes Laravel’s HTML::macro() method. Open up your current application’s start/gloabl.php file and paste this snippet:
1 2 3 |
HTML::macro('isActive', function($url) { return Request::is($url) ? 'active' : ''; }); |
Here we are checking if the request matches the url. If so, we are adding an active class to the menu item.
Your blade template for navigation menu should be something like this:
1 2 3 4 |
<ul> <li class="{{HTML::isActive('about')}}"><a href="{{ URL::route('about')}}">About</a> </li> <li class="{{HTML::isActive('contact')}}"> <a href="{{ URL::route('contact')}}">Contact</a></li> </ul> |
That’s it.
I hope you like this Post, Please feel free to comment below, your suggestion and problems if you face - we are here to solve your problems.
I am Arjun from Hyderabad (India). I have been working as a software engineer from the last 7+ years, and it is my passion to learn new things and implement them as a practice. Aside from work, I like gardening and spending time with pets.
is this valid for laravel5?