2014-09-19 51 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