3 回答
TA贡献1864条经验 获得超2个赞
你可以使用这样的is()方法:
<li class="{{Request::is('/')?'active':''}}"> <a href="{{ url('') }}">Home</a> </li>
<li> <a class="{{Request::is('blog')?'active':''}}" href="{{ url('blog') }}">Blog</a> </li>
TA贡献1796条经验 获得超10个赞
我建议您使用命名路由并设置一个辅助函数。这将有助于保持导航清洁。
示例命名路线
Route::get('/','HomeController@index')->name('home');
Route::get('/blog','BlogController@index')->name('blog.index');
Route::get('/blog/{blog}','BlogController@show')->name('blog.show');
示例辅助函数
if (!function_exists('isActiveRoute'))
{
/**
* Asserts active route
*
* @param $routes
* @param string $output
* @return string
*/
function isActiveRoute($routes, $output = 'active')
{
foreach ((array)$routes as $route) {
if (Route::currentRouteName() == $route) {
return $output;
}
}
}
}
样品刀片导航
<li class="{{ isActiveRoute('home') }}"> <a href="{{ route('home') }}">Home</a> </li>
<li class="{{ isActiveRoute('blog.index') }}"><a href="{{ route('blog.index') }}">Blog</a> </li>
// Or pass an array of routes if named accordingly
<li class="{{ isActiveRoute(['blog.index','blog.show']) }}"><a href="{{ route('blog.index') }}">Blog</a> </li>
TA贡献1789条经验 获得超10个赞
您可以将 $currentPage 变量传递给每个控制器方法中的视图,并在标头本身中执行以下操作:
<li class="{{ $currentPage=='home' ? 'active' : '' }}"> <a href="{{ url('') }}">Home</a> </li>
<li class="{{ $currentPage=='blog' ? 'active' : '' }}"> <a href="{{ url('blog') }}">Blog</a> </li>
你的控制器:
return view("blog", ["currentPage"=>'blog']); // do the same for home
这样,三元运算符仅在您位于正确页面上时才添加“活动”类。
- 3 回答
- 0 关注
- 178 浏览
添加回答
举报