2017-10-09 39 views
0

我在寫一些常用功能的同時學習Laravel。現在我試圖做的是當我點擊主分類鏈接打開新頁面並顯示分配給這個分類的所有子分類。聽起來很簡單,但我無法顯示它們。在Laravel獲得主類別子類別的問題

這是我在我的分類模型

public function parent() 
{ 
    return $this->belongsTo('App\Category', 'parent_id'); 
} 

public function children() 
{ 
    return $this->hasMany('App\Category', 'parent_id'); 
} 

並在控制器

public function categoryListing($category_id) 
{ 

    $categories = Category::with('children')->get();  

    $category = Category::find($category_id); 

    if($category->parent_id == 0) { 

     $ids = Category::select('id')->where('parent_id', '!=',0)->get(); 
     $array = array(); 

     foreach ($ids as $id) { 
      $array[] = (int) $id->id; 
     } 

    } else { 
     $items = Item::where('category_id' ,$category_id)->paginate(5); 
    } 

    return view('category_list', compact('categories','items')); 
} 

這裏的想法是,以顯示主要類別,這主要類別的所有子類(孩子的) 。 這是頁面上的循環

@foreach($categories as $category) 
    <a href="{!!route('list',array($category->id))!!}"> 
     <span><strong>{!!$category->title!!}</strong> ({!! $category->itemCount!!})</span> 
    </a> 
    <ul class="list-group"> 
     @foreach($category as $subcategory) 
      <a href="{!!route('list',array($subcategory->id))!!}">{!!$subcategory->title!!}</a> 
      <span class="badge badge-primary badge-pill">{!! $subcategory->itemCount !!}</span> 
     </li> 
     @endforeach 
    </ul> 
@endforeach 

電流誤差

試圖在裏面的foreach得到非對象

的財產。

+0

能否請您試試這個'$子類別[「標題」];'和'$子類別[「temCount」] ;'裏面的foreach。 –

+0

它正在返回一些有線的東西。結果是第一個foreach中的所有類別和子類別。第二個foreach應該顯示的子類別是空的 – Peter

+0

我知道這是完全混亂的,可能有更簡單和更簡單的方法來將主類別與子類別分配給它.. – Peter

回答

1

只要嘗試這是'更清潔'..如果它的工作,開始添加您的鏈接和其他內容,所以你會知道什麼是行不通的。

@foreach($categories as $category) 
    <span><strong>{!!$category->title!!}</strong></span> 
    <ul class="list-group"> 
     @foreach($category as $subcategory) 
      <li>{!!$subcategory->title!!}</li> 
     @endforeach 
    </ul> 
@endforeach 

確保您嘗試打印的變量存在於每個對象中。

您可以嘗試dd($categories);在你的控制器返回view('category_list', compact('categories','items'));語句之前看到最新內部$categories

+0

謝謝,但正在「嘗試獲取非對象...「在第二個foreach行{!! $ subcategory-> title !!}'中。我試圖改變'{!! $ subcategory ['title'] !!}'它是空的。 'dd($ categories);'返回所有的類別,而不是我點擊的單個類別,ID是'$ category_id' – Peter

相關問題