使用Eloquent检索产品的照片

时间:2017-11-08 10:38:19

标签: php laravel foreign-keys laravel-eloquent

我是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

关系如下:

  • 产品模型有照片方法,返回 $ this-&gt; hasMany(&#39; App \ ProductPhotos&#39;)< /强>

  • ProductPhotos 模型有产品方法,返回 $ this-&gt; belongsTo(&#39; App \ Product&#39;)< /强>

以下方法产生

  

此集合实例上不存在Property [filename]

错误。

$products = Product::all();

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

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

2 个答案:

答案 0 :(得分:1)

问题是您试图从DAY TOTAL_HOURS --------------------------------- 02.10.2017 00:00:00 2,43 03.10.2017 00:00:00 3,13 04.10.2017 00:00:00 2,32 05.10.2017 00:00:00 0,92 16.10.2017 00:00:00 2 17.10.2017 00:00:00 0,01 18.10.2017 00:00:00 1,16 19.10.2017 00:00:00 2,09 20.10.2017 00:00:00 1,01 集合中获取from f5.bigip import ManagementRoot import urllib3 import csv urllib3.disable_warnings() mgmt = ManagementRoot('13.126.108.12','admin','admin') ltm = mgmt.tm.ltm virtuals = mgmt.tm.ltm.virtuals virtual = mgmt.tm.ltm.virtuals.virtual with open('name.csv', newline='') as csvfile: reader = csv.DictReader(csvfile) for row in reader: virtual1 = mgmt.tm.ltm.virtuals.virtual.create(row['name'], row['description'], row['ip']) 属性,而不是filename模型实例。

试试这样:

ProductPhotos

答案 1 :(得分:1)

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