2017-10-09 45 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

相关问题