检查子菜单项中的当前 url

check current url in sub menu items

我想将自定义活动 class 添加到具有当前路线的侧边菜单。我知道我可以通过 url()->current() 获得当前 url 并将其与 route('something') 进行比较,但我的挑战是当我想在 [=22] 上同时获得活动 class =]和child选择a child项目时。

我的没有任何 children 的菜单项代码是:

<li class=" @if(url()->current()==route('home')) custom_active_menu @endif ">

您可以将 if 与 parent 的多个 or 语句一起使用。我通常使用 Request class,这样我就可以使用仅带有星号而不是多个 or 语句的模式。但是,您可以根据需要使用任何东西。使用 Request class

的例子
<li class="{{ \Request::is('menu/*') || \Request::is('menu') ? 'active' : ''  }}">
    <a href="#">
        <i class="metismenu-icon pe-7s-bandaid"></i>
        Menu
        <i class="metismenu-state-icon pe-7s-angle-down caret-left"></i>
    </a>
    <ul>
        <li>
            <a href="{{ route('menu.index') }}" class="{{ \Request::is('menu') ? 'active' : ''  }}">
                <i class="metismenu-icon"></i>
                Menu Index
            </a>
        </li>
                        
        <li>
            <a href="{{ route('menu.create') }}" class="{{ \Request::is('menu/create') ? 'active' : ''  }}">
                <i class="metismenu-icon"></i>
                Menu Create
            </a>
        </li>
    </ul>
</li>

这里我正在使用 \Request::is('menu/*') 检查请求 url 中的模式,这意味着如果请求 url 匹配任何开始的模式,则此 li 将始终处于活动状态通过 menu/ 点赞 menu/createmenu/1/edit。使用 or 语句我正在检查确切的请求 url menu.

和child,只是一个简单的if语句。如果当前 url 与菜单匹配 url 添加 class active.

以你的例子,我会为 parent

做类似的事情
<li class=" @if (url()->current() == route('home') || url()->current() == route('another_route')) custom_active_menu @endif ">

并且 child 只需一个 if

<li class=" @if (url()->current() == route('home')) custom_active_menu @endif ">