我目前正在使用laravel blade,目前我正在使用自举工具和刀片模板。
希望导航按钮能够与所选页面一起动态交互
<div class="navbar">
<nav class="navbar navbar-inverse navbar-fixed-top">
<div class="container-fluid">
<div class="navbar-header">
<a class="navbar-brand" href="#"><b>iMakan</b></a>
</div>
<div>
<ul class="nav navbar-nav navbar-right">
<li><a class="active "href="/">Home</a></li>
<li><a href="about">About Us</a></li>
<li><a href="contact">Contact Us</a></li>
<li><a href="auth/login">Login</a></li>
<li><a href="503">Cart</a></li>
</ul>
</div>
</div>
</nav>
</div>
答案 0 :(得分:6)
Laravel提供了一个可以使用的内置函数:Request::is()
。
来自API docs:
确定当前请求URI是否与模式匹配。
你使用的是这样的:
Request::is('about'); // returns a boolean
<a href="about" @if(Request::is('about')) class="active" @endif>
您可以编写辅助函数来处理它:
function isActive($path, $class = 'active')
{
return (Request::is($path)) ? $class : '';
}
将其放在helpers.php
目录中名为app
的文件中,并将其包含在composer.json
的自动加载部分中,如下所示:
"autoload": {
"files": [
"app/helpers.php"
]
},
也许您需要在终端中执行composer dump-autoload
。
最后像这样使用它:
<a href="about" class="{{ isActive('about') }}">About</a>
答案 1 :(得分:0)
这是我的方式我做什么,你也应该遵循这个
如果你的网址的最后一部分如home
为主页,aboutus
为关于我们,那么你可以这样做
第1步:
获取请求Uri
$_SERVER['REQUEST_URI']
第2步:
在你class
内,你可以有这个条件
<?php if ($_SERVER['REQUEST_URI']=='/') { echo 'active'; } ?>
所以你将有
<li><a href="about" class='<?php if ($_SERVER['REQUEST_URI']=='/') { echo 'active'; } ?>' >About Us</a></li>
条件将根据您的uri
回显active
所以你会有这样的东西
<ul class="nav navbar-nav navbar-right">
<li><a class="<?php if ($_SERVER['REQUEST_URI']=='/') { echo 'active'; } ?>" href="/">Home</a></li>
<li><a class='<?php if ($_SERVER['REQUEST_URI']=='/aboutus') { echo 'active'; } ?>'href="about" >About Us</a></li>
<li><a class='<?php if ($_SERVER['REQUEST_URI']=='/contactus') { echo 'active'; } ?>'href="contact">Contact Us</a></li>
<li><a class='<?php if ($_SERVER['REQUEST_URI']=='/login') { echo 'active'; } ?>' href="auth/login">Login</a></li>
<li><a class='<?php if ($_SERVER['REQUEST_URI']=='/cart') { echo 'active'; } ?>' href="503">Cart</a></li>
</ul>
然后,您将根据您的网址获得class='active'
。
希望这会对你有所帮助。
答案 2 :(得分:0)
您可以使用package,但只使用laravel提供的内容我会建议如下:
<a href="{{ URL::route('home') }}"
class="{{ Route::current()->getName() === 'home' ? : 'active' : ''">Home</a>
使用URL::route(...)
将根据路由名称创建一个URL,您可以检查此名称当前是否与providec检查一起使用。要命名路线,请阅读laravel documentation about routing.