2014-09-19 48 views
0

有没有一种方法,我不必使用多个@include为一些页面的选项卡。Laravel - 刀片模板定义部分/包括

比如我做这样的事情

在部分/产品tab1.blade.php

<ul class="nav-tabs hidden-xs" role="tablist"> 
    <li><a href="/something1" role="tab">Category Name 1</a></li> 
    <li class="active"><a href="/something2">Category Name 2</a></li> 
</ul> 

在部分/产品tab2.blade.php

<ul class="nav-tabs hidden-xs" role="tablist"> 
    <li><a href="/something4" role="tab">Something Name 4</a></li> 
    <li class="active"><a href="/something5">Something Name 5</a></li> 
    <li class="active"><a href="/something6">Something Name 6</a></li> 
</ul> 

在something1.blade.php中,我会这样定义以显示制表符:

@include('product-tab1') 

在something4.blade.php显示选项卡:

@include('product-tab2') 

而且你会使用如果视图文件语句来定义class="active"与否?它将从控制器获取已定义的变量。

回答

1

你会使用一个if条件,一个short-if在这种情况下实际上是ver short。如果导航可能看起来像这样(注意,如果使用Bootstrap类,您可能想使用不同的类)。

理想情况下,您应该为此编写一个帮手,但我们现在只需在您的视图中使用一些逻辑来完成。只要到你想设置的活动类的标签,放在下面。

class="{{ Request::is('your/path') ? 'active' : '' }}" 

既然是一种肮脏的,但它肯定的作品。你最终应该为它创建一个帮手,但是你真的不需要为测试或者小项目创建一个帮助器。

像这样的东西一个很好的资源是Laracasts,这里是相应的视频:

https://laracasts.com/lessons/active-states


现在您的其他问题,我不知道究竟你在做或什么原因你引用这些标签。这种方式很难提出一个好的解决方案。

+0

感谢您的回答。我会看那个视频。关于选项卡,几页将具有相同的选项卡部分。其他一些页面将具有不同的选项卡部分。这就是为什么我想引用这些标签。理解? – user1246800 2014-09-19 12:28:13

+0

啊,在这种情况下,如果只有两组选项卡,您可以为不同的页面创建不同的模板。只需创建一个模板和一个模板并使用这些模板。如果它更像你这样做,那很好。 – aFreshMelon 2014-09-20 21:18:46