我正在使用groupBy
函数来查看其类别下的所有项目。一切正常,但我想显示类别名称而不是类别ID。
项目模型
public function categories()
{
return $this->belongsTo(Category::class);
}
类别模型
public function items()
{
return $this->belongsTo(Item::class);
}
控制器
public function getItems()
{
$items = Item::with('categories')->get()->groupBy('category_id');
$categories = Category::orderBy('category_id', 'asc')->get();
return view('home')->with('items',$items)->with('categories',$categories);
}
home.blade
@foreach($items as $category_id => $categoryItems)
<!-- here must display name insted of id: {{ $category_id }} -->
@foreach($categoryItems as $item)
<!-- Item Details-->
@endforeach
@endforeach
答案 0 :(得分:0)
类别(1)->项目(N)
您必须定义这两个表之间的关系
//类别模型
public function items()
{
return $this->hasMany('App\Items');
}
//物品模型
public function category()
{
return $this->belongsTo('App\Category');
}
在您的控制器中
public function showAllItems()
{
$items = Item::all()->groupBy('category_id');
return view('view-name', ['items' => $items]);
}
您认为
@foreach ($items as $item)
{{ $item->category->category_name }}
...
@endforeach
答案 1 :(得分:0)
我找到了这个问题的解决方案,它的模型必须是这样
项目模型
public function category()
{
return $this->belongsTo('App\Category', 'category_id');
}
类别模型
public function items() {
return $this->hasMany('App\Item', 'category_id');
}