Laravel blade 中的资源匹配
Laravel resource match in blade
我已经使用 laravel(5.8) 资源路由构建了一个典型的 crud 系统。
Route::resource('users', 'UserController');
我正在尝试匹配该资源的任何方法以使 link 显示在菜单中处于活动状态:
<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>
有明确的解决方案吗?
您可以使用以下方法来实现。
<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>
我在 laravel 中找到的多个路线的最佳方法是这个
这样它将匹配所有路由,如 roles.index roles.create roles.* 和 users.*
class="{{ str_contains(Route::currentRouteName(), ['roles','users']) ? 'active' : '' }}"
我已经使用 laravel(5.8) 资源路由构建了一个典型的 crud 系统。
Route::resource('users', 'UserController');
我正在尝试匹配该资源的任何方法以使 link 显示在菜单中处于活动状态:
<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>
有明确的解决方案吗?
您可以使用以下方法来实现。
<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>
我在 laravel 中找到的多个路线的最佳方法是这个 这样它将匹配所有路由,如 roles.index roles.create roles.* 和 users.*
class="{{ str_contains(Route::currentRouteName(), ['roles','users']) ? 'active' : '' }}"