Laravel, как отобразить имя категории вместо идентификатора категории - PullRequest
0 голосов
/ 25 июня 2018

Я использую функцию groupBy для просмотра всех предметов в своей категории.Работает нормально, но я хочу отобразить имя категории вместо идентификатора категории.

модель элемента

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 голосов
/ 25 июня 2018

Я нашел решение этой проблемы, его модель должна быть такой:

модель изделия

 public function category() 
 {
    return $this->belongsTo('App\Category', 'category_id');
 }

категория модели

 public function items() {

    return $this->hasMany('App\Item', 'category_id');

  }
0 голосов
/ 25 июня 2018

Категория (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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...