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 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!!!
Sign in to participate in this thread!
The Laravel portal for problem solving, knowledge sharing and community building.
The community