动态改变div值,laravel刀片上的导航栏

Aja*_*bcb 4 php navigation laravel blade

我目前正在使用laravel刀片,我目前使用刀片模板实现了bootstrap.

希望导航按钮能够与所选页面一起动态交互

<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>
Run Code Online (Sandbox Code Playgroud)

Tim*_*Tim 6

Laravel提供了一个可以使用的内置功能:Request::is().

来自API文档:

确定当前请求URI是否与模式匹配.

你使用是这样的:

Request::is('about'); // returns a boolean

<a href="about" @if(Request::is('about')) class="active" @endif>
Run Code Online (Sandbox Code Playgroud)

您可以编写一个辅助函数来处理它:

function isActive($path, $class = 'active')
{
    return (Request::is($path)) ? $class : '';
}
Run Code Online (Sandbox Code Playgroud)

把它放在helpers.php你的app目录中调用的文件中,并将其包含在你composer.json喜欢的autoload部分:

"autoload": {
    "files": [
        "app/helpers.php"
    ]
},
Run Code Online (Sandbox Code Playgroud)

也许你需要composer dump-autoload在你的终端做一个.


最后像这样使用它:

<a href="about" class="{{ isActive('about') }}">About</a>
Run Code Online (Sandbox Code Playgroud)