繁体   English   中英

在Laravel中获取主要类别子类别的麻烦

[英]Troubles with getting sub-categories of main category in 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。

只需尝试使用“干净”工具即可。如果可行,请开始添加链接和其他内容,以便您了解不可行的地方。

@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); 在您的控制器中的return view('category_list', compact('categories','items')); 语句以查看$categories

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM