我是Laravel的新手,我正在开发一个Laravel应用程序,可以为一个产品上传1到3张图片 .
上传的每张照片都是 product_photos
表中的新行,其中包含 products
表的外键,如下所示:
id: 39
product_id: 8
filename: photos/PD8Xep1OEjwGFH6TGpHoWc4fmPcPpOjnGMbEe5Qh.jpeg
**************************************************************
id: 40
product_id: 8
filename: photos/dqI4PzrmkWsPY9hQcddN8J0i2HBPPQhBO5b4PzMn.jpeg
关系如下:
-
Product Model有 photos 方法,返回 $this->hasMany('App\ProductPhotos')
-
ProductPhotos Model有 product 方法,返回 $this->belongsTo('App\Product')
以下方法产生一个
此集合实例上不存在属性[filename]
错误 .
$products = Product::all();
foreach ($products as $product) {
dd($product->photos->filename);
}
在这种情况下是否可以使用Eloquent检索产品的文件名,或者我是否需要使用查询构建器 .
2 回答
问题是您试图从
ProductPhotos
集合中获取filename
属性,而不是ProductPhotos
模型实例 .试试这样: