0

我已经使用 laravel(5.8) 资源路由构建了一个典型的 crud 系统。

Route::resource('users', 'UserController');

我正在尝试匹配该资源的任何方法以使链接在菜单中显示为活动状态:

  <li class="nav-item 
      @if(Request::route()->getName() == 'users.index' 
        || Request::route()->getName() == 'users.create'
        || Request::route()->getName() == 'users.show'
        || Request::route()->getName() == 'users.*.edit') 
       active
      @endif">
       <a href="#">Users</a>
  </li>

有没有明确的解决方案?

4

2 回答 2

3

您可以使用以下方法来实现此目的。

<li class="nav-item {{ str_is('users.*', Route::currentRouteName()) ? 'active' : '' }}>
  <a href="#">Users</a>
</li>

这使用str_is() laravel 助手来查看字符串是否包含users.. 这是检查当前路线的名称。

然后如果为真则输出active,如果为假则不输出。

注意:在 Laravel 5.8 中,默认删除了字符串和数组助手。您的代码将需要使用Str外观。

<li class="nav-item {{ \Str::is('users.*', Route::currentRouteName()) ? 'active' : '' }}>
  <a href="#">Users</a>
</li>
于 2019-03-08T14:00:44.820 回答
0

我在 laravel 中找到的多个路由的最佳方法是这样它会匹配所有路由,如角色.索引角色.创建角色。*和用户。*

class="{{ str_contains(Route::currentRouteName(), ['roles','users']) ? 'active' : '' }}"
于 2020-05-20T22:33:00.090 回答