【问题标题】:Undefined variable: row (View: resources\views\admin\category\show.blade.php)未定义变量:行(查看:resources\views\admin\category\show.blade.php)
【发布时间】:2019-12-16 19:18:31
【问题描述】:

您好,我想在与其相关的类别中展示产品,但它说:

未定义变量:行 (查看:\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'));
  }

【问题讨论】:

  • 如果你在这里发布你的控制器逻辑代码会很有帮助。
  • 你能发布你的控制器和模型吗?
  • @lizeshakya 编辑了问题
  • @BishalJungChettri 编辑了问题

标签: laravel eloquent laravel-5.8


【解决方案1】:
  1. 变量名不同

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

您在刀片文件中使用 $row

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

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

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

分类模型:

...

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

...

【讨论】:

    【解决方案2】:
    //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
    

    【讨论】:

      猜你喜欢
      • 2021-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-07
      • 2019-11-25
      • 2019-11-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多