Laravel - продукты отображаются по категориям, но не удается отобразить имя категории в файле лезвия. - PullRequest
1 голос
/ 06 мая 2020

Требуется помощь в laravel

Я пытаюсь отображать продукты на основе категории, и я это сделал. Мне нужно отобразить название категории в файле просмотра продукта, но не могу.

Созданная таблица

продукты с id, pname, cid

категории с id, cname

Файл маршрута: Route :: get ('/ Categories / {id}', 'CategoriesController@show'); Route :: get ('/ Categories /', 'CategoriesController@index');

Мой контроллер

public function show($id)
    {

    $category_products=product::where('cid',$id)->get();

    return view ('product',compact('category_products',$id));

    }

Мой вид

@foreach ($category_products as $product)

{{$product->$product->pname}}

@foreach

Я хочу отображать название категории над списком продуктов

1 Ответ

3 голосов
/ 06 мая 2020

В вашей модели категорий добавьте отношение:

public function products(){
   return $this->hasMany('App\Product','cid');
}

В вашем контроллере получите все категории и с нетерпением загрузите свои продукты:

$categories=Category::with('products')->get();
return view ('product',compact('categories'));

В вашем виде лезвия:

@foreach ($categories as $category)
    {{$category->cname}}
    @foreach ($category->products as $product)
        {{$product->pname}}
    @foreach
@foreach
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...