有没有办法在Laravel的return中循环或执行一些foreach操作?我有这个软件包https://github.com/stechstudio/laravel-zipstream的zip下载从s3。All适用于单个文件和多个文件,但仅当每个文件在单独的行中提供时。
use Zip;
public function z4()
{
return Zip::create("package.zip")
->add("s3://testbucket/images/26/17/full/BS288.jpg", "BS288.jpg")
->add("s3://testbucket/images/26/17/full/BS289.jpg", "BS289.jpg")
->add("s3://testbucket/images/26/17/full/BS290.jpg", "BS290.jpg")
}
但如何使用数据库中的数据进行此操作
$photos = DB::table('gallery_image')
->where('folder_id','=',$id)
->select('original_name')->get();
这是从$photos返回的数组:
Illuminate\Support\Collection {#1017 ▼
#items: array:131 [▼
0 => {#1025 ▼
+"original_name": "BS288.jpg"
}
1 => {#1022 ▼
+"original_name": "BS289.jpg"
}
2 => {#1026 ▼
+"original_name": "BS290.jpg"
}
这段代码总是返回一个文件
foreach($photos as $image) {
return Zip::create("package.zip", [
"s3://asystentfotografa/images/26/17/full/".$image->original_name,
]);
}
2条答案
按热度按时间kr98yfug1#
您可能需要更改我使用的
field names
,因为它们可能不准确,但是,像下面这样的东西呢?5tmbdcev2#
上面的代码将二维码照片保存在 qrcode 文件夹,照片保存在 photos 文件夹。
不要忘记更改存储桶的名称。它在我身上工作顺利。