使用 Eloquent 检索产品照片

Retrieve photos for product with Eloquent

我是 Laravel 的新手,我正在开发一个 Laravel 应用程序,可以为一个产品上传 1 到 3 张图片。

上传的每张照片都是 product_photos table 中的一个新行,带有指向 products table 的外键,如下所示:

id: 39
product_id: 8
filename: photos/PD8Xep1OEjwGFH6TGpHoWc4fmPcPpOjnGMbEe5Qh.jpeg
**************************************************************
id: 40
product_id: 8
filename: photos/dqI4PzrmkWsPY9hQcddN8J0i2HBPPQhBO5b4PzMn.jpeg

关系如下:

下面的方法产生了

Property [filename] does not exist on this collection instance

错误。

$products = Product::all();

foreach ($products as $product) {
    dd($product->photos->filename);
}

在这种情况下是否可以使用 Eloquent 检索产品的文件名,或者我是否需要为此使用查询生成器。

问题是您试图从 ProductPhotos 集合中获取 filename 属性,而不是 ProductPhotos 模型实例。

像这样尝试:

foreach ($products as $product) {
    foreach ($product->photos as $photo) {
        dd($photo->filename);
    }
}
foreach ($products as $product) {
    foreach ($product->photos as $single_photo ) {
        dd($single_photo->filename);
    }
}