laravel-menu
ships with a View
item type, which you can use to render views as menu items. Views are created by specifying the view's name, and optionally passing data.
Menu::new()
->add(View::create('greeting', ['name' => 'Sebastian']));
Hello, {{ $name }}!
<ul>
<li>
Hello, Sebastian!
</li>
</ul>
If url
is set in the data argument, it will be used to determine the active state of the view with setActiveFromUrl
or setActiveFromRequest
.
Menu::new()
->add(View::create('greeting', ['name' => 'Sebastian', 'url' => '/profile']))
->setActiveFromUrl('/profile');
<ul>
<li class="active">
Hello, Sebastian!
</li>
</ul>
Additionally, an $active
boolean will always be passed to the view.
I'm {{ $active ? 'active' : 'inactive' }}!