Laravel 4 laravel 4中的活动链接

Laravel 4 laravel 4中的活动链接,laravel-4,blade,Laravel 4,Blade,在我的master.blade.php文件中,我有一个导航,我正试图把它放在一起 <nav class="navbar navbar-default" role="navigation"> <div class="container-fluid"> <div class="col-sm-5"> <ul class="nav navbar-nav" > <li class="{{ Route::current

在我的master.blade.php文件中,我有一个导航,我正试图把它放在一起

    <nav class="navbar navbar-default" role="navigation">
  <div class="container-fluid">
  <div class="col-sm-5">
    <ul class="nav navbar-nav" >
      <li class="{{ Route::current( 'home.index') ? 'active' : '' }}">{{ HTML::linkAction('HomeController@index', 'Home') }}
      <li><a href="">Locations</a></li>
      <li class="{{ Route::current( 'order.index') ? 'active' : '' }}">{{ HTML::linkAction('OrderController@index', 'Order Online') }}
    </ul>
  </div>
  <div class="col-sm-5 navbar-right">
    <ul class="nav navbar-nav navbar-right">
      <li class="{{ Route::current( 'menu.index') ? 'active' : '' }}">{{ HTML::linkAction('MenuController@index', 'Menu') }}
      <li><a href="">About</a></li>
      <li><a href="">Contact Us</a></li>
    </ul>
  </div>
  <div class="container-fluid">
</nav>

  • {{HTML::linkAction('HomeController@index“,“Home”)}
  • {{HTML::linkAction('OrderController@index“,”在线订购“}”
  • {{{HTML::linkAction('MenuController@index“,“菜单”)}

这里的问题是,它们都将li设置为活动。不是当前页面。我做错了什么?

这件作品返回了对象

Route::current( 'home.index')
换成

Route::currentRouteName() == 'home.index'
我建议用它做一个助手函数,如下所示:

function setActive($route, $class = 'active')
{
    return (Route::currentRouteName() == $route) ? $class : '';
}
Jeffrey在


例如,您可以将助手放在app/helpers.php中,然后需要将其添加到/composer.json中的autoload中,如下所示

...
"autoload": {
    "classmap": [
        ...
    ],
    "files": [
        "app/helpers.php"
    ]
}

或者简单地使用三元运算:

<li {{ (Request::is('*login') ? 'class="active"' : '') }}>Login</li>
login

Lynnais和Jarek Tkaczyk都有正确的答案。但是这里的工作是
创建一个文件或类。如果使用类,则可以创建一个具有任意名称的静态函数。并将文件名或类文件夹添加到composer.json

... "autoload": { "classmap": [ ... , 'app/helpers' ], "files": [ "app/helpers.php" ] } 现在,无论何时您想从视图中这样调用它

<ul class="nav navbar-nav">
    <li class="dropdown {{ \App\Helper\Helper::set_active('/') }}"> {{ HTML::decode(HTML::link('/','<i class="fa fa-home"></i> Home  ', array('class' => 'dropdown-toggle'))) }} </li>
    <li class="dropdown {{ \App\Helper\Helper::set_active('admins') }}"> {{ HTML::decode(HTML::link('/admins','<i class="fa fa-user"></i> Admins  ', array('class' => 'dropdown-toggle'))) }} </li>                
</ul>
  • '下拉切换'))}
  • '下拉开关')))}

  • Home
  • admins

  • 快乐编码:)

    嗯,我是新来laravel的-我应该把助手函数放在哪里?你能把我和他的录像联系起来吗?回答得很好!我不确定这是不是免费的,但laracasts值得花一些美元。你的助手功能可以去你想去的任何地方,在secSweet中选中我的编辑,是的,太糟糕了,他不接受paypal作为订阅。我发电子邮件给支持。我编辑了composer.json并运行了composer,但是我得到了一个错误:-这是我的composer文件,这是一个错误:你忘记了“,”在类映射和文件之间数组,我刚才也发现了它-但是当我运行它时得到了这个:更干净的解决方案。干杯
    <ul class="nav navbar-nav">
        <li class="dropdown {{ \App\Helper\Helper::set_active('/') }}"> {{ HTML::decode(HTML::link('/','<i class="fa fa-home"></i> Home  ', array('class' => 'dropdown-toggle'))) }} </li>
        <li class="dropdown {{ \App\Helper\Helper::set_active('admins') }}"> {{ HTML::decode(HTML::link('/admins','<i class="fa fa-user"></i> Admins  ', array('class' => 'dropdown-toggle'))) }} </li>                
    </ul>
    
    <li class="{{\App\Helper\Helper::set_active('/')}}">Home</li>
    <li class="{{\App\Helper\Helper::set_active('admins')}}">Admins</li>