Laravel中用于Twitter Bootstrap导航的自动活动类

Dru*_*zed 5 php navigation twitter-bootstrap laravel

像大多数人一样,我正在使用Twitter Bootstrap来访问我目前正在Laravel中开发的网站.到目前为止,我很享受使用Laravel作为与Rails相当的PHP,但我想知道是否有更好的方法来做导航栏.我试图确保我的导航栏li标签自动获得活动类,所以我有这个:

<ul class="nav nav-pills">
@if(URL::current() . "/" == URL::route('home'))
    <li class="active">
@else
    <li>
@endif
    <a href="{{ route('home') }}">Home</a>
</li>
@if(URL::current() == URL::route('about'))
    <li class="active">
@else
    <li>
@endif
    <a href="{{ route('about') }}">About</a>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

现在这个没关系.但是当我有菜单和更多导航时,最终看起来很难调试和处理.

有什么类似于Laravel的Gem Tabulous或者在Laravel中处理导航的一般方法吗?

小智 19

我用这个:

<li class="{{Request::path() == 'home' ? 'active' : '';}}">
  <a href="/home"><i class="fa fa-home"></i>Home</a>
</li>
Run Code Online (Sandbox Code Playgroud)


rmo*_*bis 9

看一下Bootstrapper软件包,它有很多工具可以帮助你使用Twitter Bootstrap.在您的示例中,您可以像这样构建导航:

Navigation::pills(array(
    array(
        'label'  => 'Home',
        'url'    => URL::route('home'),
    ),
    array(
        'label'  => 'About',
        'url'    => URL::route('about'),
    )
));
Run Code Online (Sandbox Code Playgroud)

还有简写方法,不那么详细,我不是特别喜欢,但可以使用:

Navigation::pills(
    Navigation::links(array(
        array('Home', URL::route('home')),
        array('About', URL::route('about')),
    ))
);
Run Code Online (Sandbox Code Playgroud)

值得注意的是,在两个示例中,Bootstrapper active自动处理类,将当前请求URL与传递给项目的URL进行比较.但是,如果您希望为此应用指定不同的条件,则只需active为较短的方法传递数组中的值或第三个值.例:

Navigation::pills(array(
    array(
        'label'  => 'Home',
        'url'    => URL::route('home'),
    ),
    array(
        'label'  => 'About',
        'url'    => URL::route('about'),
        'active' => true,
    )
));
Run Code Online (Sandbox Code Playgroud)

要么

Navigation::pills(
    Navigation::links(array(
        array('Home', URL::route('home')),
        array('About', URL::route('about'), true),
    ))
);
Run Code Online (Sandbox Code Playgroud)


sim*_*mon 5

我找到了一个帮助解决这个问题的小片段.希望这有助于下一个搜索此问题的人. http://mikekoro.com/blog/laravel-4-active-class-for-navigational-menu/