2014-11-14 109 views
0

我正在創建類別和子類別的嵌套導航。我在BaseController中有一個構造函數,該構造函數將一個變量共享給從類別模型返回所有​​內容的視圖。Laravel嵌套導航

基本控制器

public function __construct() { 
     $this->beforeFilter(function() { 
       View::share('catnav', Category::all()); 
     }); 
} 

到目前爲止,我能夠顯示的類別的名稱和對象的子類別,像這樣的數組:

@foreach($catnav as $cat) 
<li>{{ HTML::link('/store/category/'.$cat->id, $cat->name) }} 
    <ul> 
     <li>{{ HTML::link('/store/category/'.$cat->id, $cat->subcategories) }}</li> 
    </ul> 
</li> 
@endforeach 

上面具有的輸出:

- Category Name 
    - [{"id":6,"category_id":2,"name":"Electric","created_at":"2014-11-14 15:13:23","updated_at":"2014-11-14 15:13:23"},{"id":7,"category_id":2,"name":"Acoustic","created_at":"2014-11-14 15:13:26","updated_at":"2014-11-14 15:13:26"}] 
- Another Category Name 

問題:

  • 如何訪問嵌套數組的名稱屬性?
  • 這是要創建子類別導航?

我已經看過Access nested array within laravel viewsNested sets laravelSub-categories display under Main categories

回答

2

如果它的級別數量有限,你可以添加另一foreach

@foreach($catnav as $cat) 
    <li>{{ HTML::link('/store/category/'.$cat->id, $cat->name) }} 
     <ul> 
      @foreach($cat->subcategories as $subcat) 
       <li>{{ HTML::link('/store/category/'.$cat->id.'/sub/'.$subcat->id, $subcat->name) }}</li> 
      @endforeach 
     </ul> 
    </li> 
@endforeach 

對於我只是做了猜測實際的URL ,但我相信你可以自己調整以滿足你的需求。
另請注意,您可能需要首先檢查是否有子類別。只要讓我知道你是否需要幫助。

+0

百萬感謝lukas,投票並接受了答案!我還沒有嘗試添加第二個foreach循環,並且這沒有辦法! – cch 2014-11-14 18:48:53

+0

@cchacholiades沒問題:) – lukasgeiter 2014-11-14 18:50:05