【发布时间】:2019-02-19 16:17:33
【问题描述】:
图像模型:
public function getImage(){
return $this->belongsTo('App\Product');
}
产品型号:
public function product(){
return $this->hasMany('App\Image');
}
控制器:
public function index()
{
$products = Product::all(); //Select *
return view('product.index',compact('products'));
}
查看:
@foreach($products as $product)
<td>{{ $product->getImage->image_link}}</td>
@endforeach
错误:
试图获取非对象的属性“image_link”(查看: C:\xampp\htdocs\ecommerce\resources\views\product\index.blade.php)
【问题讨论】:
-
您需要在您的数据库中添加一些虚拟数据,目前您正试图带来一个空数据。
-
你需要在你的产品模型而不是图像模型中定义 getImage 关系,这将是 hasMany 关系
-
你颠倒了方法。
getImage()应该在产品模型中,product()在图像模型中。无论如何, $product->getImage 将返回集合,所以尝试 $product->getImage[0]->image_link -
已解决!!!我只是缺少 getImage[0] 中的第一个索引。谢谢朋友和 N69S。