【发布时间】:2020-11-30 19:52:45
【问题描述】:
我在索引中也尝试了@foreach $categories->children(),仍然给出相同的错误,即 Method Illuminate\Database\Eloquent\Collection::childrenRecursive 不存在,无论我使用哪个函数,我都会得到相同的错误,我想显示所有类别及其子类别。好像不知道怎么弄
类别:
public function parent()
{
return $this->belongsTo(Category::class, 'cat_id');
}
public function children()
{
return $this->hasMany(Category::class, 'cat_id');
}
public function childrenRecursive()
{
return $this->children()->with('childrenRecursive');
}
控制器:
public function index()
{
$categories = Category::with('childrenRecursive')->whereNull('cat_id')->get();
return view('categories.index',compact('categories'));
}
blade.php
@foreach ($categories->childrenRecursive() as $category)
<tbody>
<tr>
<td>
{{$category->name}}
</td>
<td data-cat-id="{{$category->id}}">
<!-- Button trigger modal -->
<button type="button" class="btn btn-primary add-subcat-modal-trigger">
Add Subcategory
</button>
<!-- Modal -->
</td>
<td>
<form action="{{route('categories.destroy',$category->id)}}" method="POST">
@csrf
@method('DELETE')
<button class="btn btn-danger">Delete</button>
</form>
</td>
</tr>
@endforeach
【问题讨论】:
-
$categories是一个包含模型的集合,它本身不是模型 -
什么可以解决这个问题?