@if (isset($menu)) @foreach ($menu as $submenu) {{-- active menu method --}} @php $activeClass = null; $active = 'active open'; $currentRouteName = Route::currentRouteName(); $currentPath = request()->path(); $currentPathClean = ltrim($currentPath, '/'); // Check if submenu URL matches current path $urlMatches = false; if (isset($submenu->url)) { $submenuUrl = parse_url(url($submenu->url), PHP_URL_PATH); $submenuUrl = ltrim($submenuUrl, '/'); // Exact match if ($submenuUrl === $currentPathClean) { $urlMatches = true; } // Check if current path starts with submenu URL (for nested routes) elseif (strpos($currentPathClean, $submenuUrl) === 0 && $submenuUrl !== '') { $urlMatches = true; } } // Check route name match $routeMatches = false; if (isset($submenu->slug)) { if (gettype($submenu->slug) === 'array') { foreach($submenu->slug as $slug){ if ($currentRouteName === $slug || (str_contains($currentRouteName, $slug) && strpos($currentRouteName, $slug) === 0)) { $routeMatches = true; break; } } } else { if ($currentRouteName === $submenu->slug || (str_contains($currentRouteName, $submenu->slug) && strpos($currentRouteName, $submenu->slug) === 0)) { $routeMatches = true; } } } // Set active class if URL or route matches if ($urlMatches || $routeMatches) { if (isset($submenu->submenu)) { $activeClass = $active; } else { $activeClass = 'active'; } } // For nested submenus, check if any child is active elseif (isset($submenu->submenu)) { $hasActiveChild = false; foreach ($submenu->submenu as $nestedSubmenu) { $nestedActive = false; if (isset($nestedSubmenu->url)) { $nestedUrl = parse_url(url($nestedSubmenu->url), PHP_URL_PATH); $nestedUrl = ltrim($nestedUrl, '/'); if ($nestedUrl === $currentPathClean || strpos($currentPathClean, $nestedUrl) === 0) { $nestedActive = true; } } if (isset($nestedSubmenu->slug) && ($currentRouteName === $nestedSubmenu->slug || (str_contains($currentRouteName, $nestedSubmenu->slug) && strpos($currentRouteName, $nestedSubmenu->slug) === 0))) { $nestedActive = true; } if ($nestedActive) { $hasActiveChild = true; break; } } if ($hasActiveChild) { $activeClass = $active; } } @endphp
  • target) and !empty($submenu->target)) target="_blank" @endif> @if (isset($submenu->icon)) @endif
    {{ isset($submenu->name) ? __($submenu->name) : '' }}
    @isset($submenu->badge)
    {{ $submenu->badge[1] }}
    @endisset
    {{-- submenu --}} @if (isset($submenu->submenu)) @include('layouts.sections.menu.submenu',['menu' => $submenu->submenu]) @endif
  • @endforeach @endif