我正在尝试在列表项中设置活动类,但它不起作用。
我在刀片中的代码:
@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
所以,如果我写:li class =“@ if(getRouteName()=='site @ index'){{'active'}} @ endif”,它的效果很好,但就我而言,问题是我想在foreach sites /'.$ site-&gt; id。'/ edit
中获得'有效'课程非常感谢。
答案 0 :(得分:10)
我当前正在使用Laravel 5.6。*,而我的解决方案是:
<a href="#" class="nav-link {{ request()->is('users*') ? 'active' : '' }}">Users</a>
答案 1 :(得分:5)
你也可以试试这个
id | name | address | account | note
1 a aa
2 b bb
3 1 a
4 2 bb
e.g:
<a href="#" class="{{ (\Request::route()->getName() == 'put the address of your route here or your route name') ? 'active' : '' }}">
注意:我只在Laravel 5.5中测试
答案 2 :(得分:2)
如果您已命名路线,则还有以下内容:
<li class="{{ Request::routeIs('admin') ? 'active' : '' }}">...</li>
答案 3 :(得分:2)
我正在使用Laravel 7和Bootstrap Dropdown。因此,有几个依赖于链接的折叠项有效,
<li class="nav-item {{ Route::is('users.*') || Route::is('user.*') ? 'active' : '' }}">
答案 4 :(得分:1)
//my admin.app.blade file
<ul class="nav">
<li class="nav-item @yield('query')">
<a class="nav-link" href="{{route('query_page')}}">
<i class="material-icons">query_builder</i>
<p>Queries</p>
</a>
</li>
<li class="nav-item @yield('feedback')">
<a class="nav-link" href="{{route('feedback_page')}}">
<i class="material-icons">feedback</i>
<p>Feedback</p>
</a>
</li>
</ul>
//query.blade
@extends('admin.app')
@section('title', 'Query Manager')
@section('page-heading', 'Query Manager')
@section('query','active')
//feedback.blade
@extends('admin.app')
@section('title', 'Feedback Manager')
@section('page-heading', 'Feedback Manager')
@section('feedback','active')
答案 5 :(得分:1)
在帮助器中起作用。
function activeMenu($uri = '') {
$active = '';
if (Request::is(Request::segment(1) . '/' . $uri . '/*') || Request::is(Request::segment(1) . '/' . $uri) || Request::is($uri)) {
$active = 'active';
}
return $active;
}
在侧边栏中使用它。
<li class="{{ activeMenu('dashboard') }}"></li>
<li class="{{ activeMenu('student') }}"></li>
<li class="{{ activeMenu('teacher') }}"></li>
答案 6 :(得分:1)
首先我会改变我的观点,然后你可以投票或不投票。
首先,您要使用路径激活菜单,以便可以使用波纹管代码。
<块引用>{{ request()->path() === 'admin/orders' ? 'your_active_class':'' }}
第二,如果你想使用查询参数激活你的菜单,这样你就可以 使用下面的代码。
<块引用>{{ request()->query('status') === 'processing' ? 'your_active_class' : '' }}
第三次使用名称路由
request()->routeIs('admin.cities')
甚至是子路径(例如编辑、创建或其他任何东西
request()->routeIs('admin.cities*')
如果你更喜欢使用路由门面,你仍然可以使用
Route::named('admin.cities*')
答案 7 :(得分:0)
使用short if。 例如:
<a href="#" class="{{ (\Request::route()->getName() == 'this.route') ? 'active' : '' }}">
答案 8 :(得分:0)
Laravel 7 +
对于前缀为admin
或admin.view
或admin.edit
等的命名路由...
<li class="{{ Str::startsWith(Route::currentRouteName(), 'admin')) ? 'active' : '' }}">...</li>
有点冗长,但是您可以考虑制作自定义函数,例如is_active('admin')
答案 9 :(得分:0)
由于没有提及,我更喜欢使用这种语法来检查路线。
<li>
<a href="#" class="nav-link {{ request()->routeIs('team*') ? 'active font-weight-bolder' : '' }}">Teams</a>
</li>
还有两件事:
添加星号(不带点号作为路线名称)将定位以团队,团队等开头的所有路线。
如果您使用的是诸如Bootstrap或Tailwind之类的CSS框架,您还可以在此处添加类来设置菜单项的样式,而不必为此编写一些CSS。
答案 10 :(得分:0)
为方便起见,在 helper 中创建一个函数并自动加载它。
"autoload": {
"psr-4": {
"App\\": "app/",
"Database\\Factories\\": "database/factories/",
"Database\\Seeders\\": "database/seeders/"
},
"files": [
"helpers/helpers.php"
]
},
// helpers/helpers.php
if (!function_exists('selected')) {
function selected($routeName, $parameters = [], $class = 'active')
{
if (!route_has($routeName)) {
return '';
}
return '/' . request()->path() == route($routeName, $parameters, false) ? $class : '';
}
}
<a href="{{ route('example_route_name', [], false) }}" class="{{ selected('example_route_name', []) }}">Menu
</a>
答案 11 :(得分:0)
如果您想使用内联 CSS,请使用以下解决方案(目前使用 Laravel 8)。
<ul>
<li><a href="{{ url('/') }}" style="{{ request()->is('/') ? 'color: #F9A82D;' : '' }}">Home</a></li>
<li><a href="{{ url('/profile') }} " style="{{ request()->is('/profile') ? 'color: #F9A82D;' : '' }}">Profile</a></li>
</ul>
<li><a href="{{ url('/user{id}') }} " style="{{ request()->is('/user/*') ? 'color: #F9A82D;' : '' }}">User</a></li>
reference
不客气。
答案 12 :(得分:0)
.active { 背景色:#7dd3f6; }
答案 13 :(得分:0)
使用请求段来激活当前菜单。 reference
<li class="{{ (request()->segment(2) == 'home') ? 'active' : '' }}" >
<a href="{{ url('home') }}">Home</a>
</li>