2015-11-07 96 views
4

我目前使用的是laravel blade,我目前使用的是bootstrap以及刀片模板。动态更改div值,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> 
+2

你是什么意思“互动动态随所选页面”? – Iamzozo

回答

5

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> 
+0

谢谢。它正在工作。 – Ajaxcbcb

+0

太棒了!如果能够帮助您解决问题,请不要忘记标记答案为“已接受”。谢谢! – Tim

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

那么你将有什么这个

<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'呼应active

希望这可以帮助你。

0

有一个package就可以使用,但只使用了什么laravel提供我建议如下:

<a href="{{ URL::route('home') }}" 
    class="{{ Route::current()->getName() === 'home' ? : 'active' : ''">Home</a> 

使用URL::route(...)基于路由的名称将创建一个URL,您可以检查此名称目前与providec检查​​一起使用。要命名路线,请参阅laravel documentation about routing.