Laravel - 刀片模板定义部分/包含

时间:2014-09-19 10:05:57

标签: php laravel blade laravel-3

是否有一种方法我不必使用多个@include作为某些页面的标签页。

例如我做这样的事情

在/ product-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>

在/ product-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')

您是否也会在视图文件中使用if语句来定义class="active"?它将从控制器获得定义的变量。

1 个答案:

答案 0 :(得分:1)

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

理想情况下,您应该为此编写一个帮助程序,但我们现在只需要在您的视图中使用一些逻辑。只需转到要设置活动类的标记,然后将其放入。

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

现在这有点脏,但它肯定有效。你应该最终为它创建一个帮助器,但你真的不需要一个用于测试或小项目。

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

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


现在针对您的其他问题,我并不确切知道您在做什么或为什么要引用这些标签。用这种方式提出一个好的解决方案真的很难。