未定义的变量:行(视图:resources \ views \ admin \ category \ show.blade.php)

时间:2019-08-09 04:15:21

标签: laravel eloquent laravel-5.8

嗨,我想显示与之相关的产品类别,但它说:

  

未定义变量:行   (查看:\ resources \ views \ admin \ category \ show.blade.php)

blade文件:

@foreach($row->products as $pro_data)
      {{ $pro_data->product_name }}
@endforeach

我将上面的代码写入show.blade.php

类别模型:

  protected $fillable = [
 'category_name', 'category_description', 'category_slug', 'category_image'
];

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

产品型号:

  protected $fillable = [
 'product_name', 'product_description', 'product_image', 'category_id', 'product_code', 'product_price', 'product_status', 'product_slug'
];

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

类别控制器:

  public function show(Category $category)
  {
    return view('admin.category.show', compact('category'));
  }

2 个答案:

答案 0 :(得分:0)

  1. 变量名称不同

如您所见,您已经在Controller中压缩了变量名类别。

您在刀片文件中使用$ row

在.blade.php文件中将$ row替换为$ category

@foreach($category->products as $pro_data)
      {{ $pro_data->product_name }}
@endforeach
  1. 关系名称不同

将$ row更改为$ category之后,将您的关系名称从product更改为Product模型中的product。

类别模型:

...

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

...

答案 1 :(得分:0)

//Category controller  
public function show(Category $category){
    $category = $category->with('product')->get();
    return view('admin.category.show', compact('category'));
  }

// blade
@foreach($category->product as $pro_data)
      {{ $pro_data->product_name }}
@endforeach