2015-11-07 31 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.