laravel - 在一个视图中显示多个图像 laravel 7
问题描述
我正在尝试显示在 Laravel 7 中运行良好的多个图像。我有一个产品和图像,其中一个产品有很多图像。我可以使用 http://localhost:8000/products/5 之类的 url 查看单个产品的所有图像。这仅显示 id 5 的所有图像。现在我想在视图中显示数据库中所有产品的所有图像,但按产品名称分组。即所有ID 为1、2、3 的图像都显示在视图中。这是我的控制器中的代码。我该如何调整这个?
public function getImageData($id)
{
$product=Products::find($id);
$images=$product->images()->get();
return view('products',['product'=>$product
,'images'=>$images
]);
}
并在 web.php
Route::get('/products/{id}', 'ProductsController@getImageData');
解决方案
您要做的是创建一个新函数,该函数获取所有产品的所有图像,然后将图像放在每个产品的索引上。这可以通过以下方式实现:
public function getProductImages(){
// Fetch all the products
$products = Products::all();
// Create an array to hold the data
$arrayOfImages = [];
// Make a foreach over the products to fetch the data
foreach($products as $product){
$arrayOfImages[$product->id] = $product->images()->get();
}
return view('products', ['productImages' => $product]);
]);
在此之后,您可以简单地对特定索引进行 foreach 以获取每个产品的图像。例如
foreach($productImages[0] as $productImages){
// Do the magic here
}
推荐阅读
- python - 序列化 os 问题列表并以 JSON 形式返回
- image-processing - ade20k 数据集标签问题
- python - 避免多次调用 Mixin 类的 __init__
- winforms - PowerShell WinForms 阻止安装 Windows 功能
- python-3.x - 省略了 ELIF 语句以支持 ELSE
- python - 根据项目ID添加价格
- kubernetes - PodSecurityPolicy 出现特定 ImagePullPolicy 故障
- javascript - 禁用时如何设置表单(可选下拉框)的样式?(反应引导)
- ios - 将视图连接到控制器时,Xcode 10 崩溃
- java - 如何将 jsonarray 转换为 map 或其他可以与 datastax 值进行比较的格式