Laravel如何显示类别名称而不是类别ID

时间:2018-06-24 21:09:38

标签: php laravel

我正在使用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

2 个答案:

答案 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');

  }