用于url的Laravel活动菜单项包括参数

Arb*_*ihu 17 php laravel

我正在尝试在列表项中设置活动类,但它不起作用.

我的刀片代码:

@foreach($data as $site)
  <ul class="sidebar-menu" id="second-menu">
  @if(isAdmin())<li class="{{-- active class  for url parameter --}}"><a href="{{ url('sites/'.$site->id.'/edit') }}" >{{ $site->name }}</a></li>
@endif
</ul>
@endforeach
Run Code Online (Sandbox Code Playgroud)

所以,如果我写:li class ="@ if(getRouteName()=='site @ index'){{'active'}} @ endif",它很好用,但在我的情况下问题是我想要在foreach 网站获得'活跃'课程/'.$ site-> id.'/ edit

非常感谢.

Ale*_*nin 55

使用is()方法.例如:

<li class="{{ request()->is('sites/*/edit') ? 'active' : '' }}"
Run Code Online (Sandbox Code Playgroud)

  • 优秀!它很好用.代码:Request :: is('sites /'.$ site-> id.'/ edit')?'活跃':'' (2认同)

Him*_*Hah 12

我目前正在使用Laravel 5.6.*,我的解决方案是:

<a href="#" class="nav-link {{ request()->is('users*') ? 'active' : '' }}">Users</a>
Run Code Online (Sandbox Code Playgroud)


Mic*_*des 7

您也可以尝试

<a href="#" class="{{ (\Request::route()->getName() == 'put the address of your route here or your route name') ? 'active' : '' }}">
Run Code Online (Sandbox Code Playgroud)

例如:

<a href="#" class="{{ (\Request::route()->getName() == 'admin') ? 'active' : '' }}">
Run Code Online (Sandbox Code Playgroud)

注意:我仅在Laravel 5.5中进行测试


小智 7

如果您已命名路线,则还有以下内容:

<li class="{{ Request::routeIs('admin') ? 'active' : '' }}">...</li>
Run Code Online (Sandbox Code Playgroud)

从这里启发

  • 这个解决方案是完美的。对于命名路由: {{ Request::routeIs('users.*') ? '积极的' : '' }} (2认同)

Dil*_*ara 5

helper 中创建一个函数。

function activeMenu($uri = '') {
    $active = '';
    if (Request::is(Request::segment(1) . '/' . $uri . '/*') || Request::is(Request::segment(1) . '/' . $uri) || Request::is($uri)) {
        $active = 'active';
    }
    return $active;
}
Run Code Online (Sandbox Code Playgroud)

在侧边栏中使用它。

<li class="{{ activeMenu('dashboard') }}"></li>
<li class="{{ activeMenu('student') }}"></li>
<li class="{{ activeMenu('teacher') }}"></li>
Run Code Online (Sandbox Code Playgroud)


jam*_*ace 5

我正在使用 Laravel 7 和 Bootstrap Dropdown。因此,有几个折叠项依赖于链接,这有效:

<li class="nav-item {{ Route::is('users.*') || Route::is('user.*')  ? 'active' : '' }}">
Run Code Online (Sandbox Code Playgroud)