Support the ongoing development of Laravel.io →
Blade Laravel

I am new to Laravel. Just learning I have created a menu bar with dynamic menus. It is working fine when I load it separately as blade template page. But when I include it in master page layout shows error.

route file::

Route::resource('menu',MenuController::class);
Route::resource('submenu',SubMenuController::class);
Route::view('master','layouts.layout');

My menu controller::

 public function index()
    {
        $menus = menu::all();
        return view('layouts.include-menu', compact('menus'));
    }

menu page layouts.include-menu.blade.php // removed all other details

<!-- Header start -->
<header id="header" class="header-two">
  <div class="site-navigation">
    <div class="container">
        <div class="row">
          <div class="col-lg-12">
              <nav class="navbar navbar-expand-lg navbar-light p-0">
                
                <div class="logo">
                    <a class="d-block" href="index-2.html">
                      <img loading="lazy" src="images/logo.png" alt="Constra">
                    </a>
                </div><!-- logo end -->

                <button class="navbar-toggler" type="button" data-toggle="collapse" data-target=".navbar-collapse" aria-controls="navbar-collapse" aria-expanded="false" aria-label="Toggle navigation">
                    <span class="navbar-toggler-icon"></span>
                </button>
                
                <div id="navbar-collapse" class="collapse navbar-collapse">
                    <ul class="nav navbar-nav ml-auto align-items-center">
                    @foreach ($menus as $item)
                    @if (count($item->submenus)>0)
                    <li class="nav-item dropdown">
                        <a href="#" class="nav-link dropdown-toggle" data-toggle="dropdown">{{ $item->menu_name }}<span class="ion-ios-arrow-down"></span></a>
                        @foreach ($item->submenus as $submenu)
                        <ul class="dropdown-menu" role="menu">
                            <li><a href="index.html">{{$submenu->submenu_name}}</a></li>
                        </ul>
                        @endforeach 
                    </li>
                    @else
                    <li class="nav-item">
                        <a class="nav-link" href="contact.html">{{ $item->menu_name }}</a>
                    </li>
                    @endif
                    @endforeach   
                    </ul>
                </div>
              </nav>
          </div>
          <!--/ Col end -->
        </div>
        <!--/ Row end -->
    </div>
    <!--/ Container end -->
  </div>
  <!--/ Navigation end -->
</header>
<!--/ Header end -->

This page is loading fine when I load it separately as blade template page. But when I include it in master page getting error::

<!doctype html>
<html>
<head>
   @include('layouts.include-head')
</head>
<body>
    <!--/ main div of the page -->
    <div class="body-inner">
    <!-- Header start -->
    <header id="header" class="header-two">
        @include('layouts.include-menu')
    </header> <!-- Header end -->



    <footer id="footer" class="footer bg-overlay">
        @include('layouts.include-footer')
    </footer>

    </div> <!--/ main div of the page ends -->
</body>
</html>

error::

Undefined variable $menus 
 @foreach ($menus as $item)

Why is it so? How to show dynamic content on master page and sub view page? Thank You!!!

0

Sign in to participate in this thread!

PHPverse

Your banner here too?

scala1988 scala1988 Joined 19 Sep 2024

Moderators

We'd like to thank these amazing companies for supporting us

Your logo here?

Laravel.io

The Laravel portal for problem solving, knowledge sharing and community building.

© 2025 Laravel.io - All rights reserved.