Views as Menu Items

laravel-menu ships with a View item type, which you can use to render views as menu items. Views are creating by specifying the view's name, and optionally passing data.

Menu::new()
    ->add(View::create('greeting', ['name' => 'Sebastian']));
<!-- resources/views/greeting.blade.php -->
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.

<!-- resources/views/amIActive.blade.php -->
I'm {{ $active ? 'active' : 'inactive' }}!