Laravel 在视图中显示多个图像LAVEL 7

Laravel 在视图中显示多个图像LAVEL 7,laravel,laravel-7,Laravel,Laravel 7,我试图显示多个图像,这在Laravel7中运行良好。我有一个产品和图片,其中一个产品有很多图片。我可以使用这样的url查看单个产品的所有图像http://localhost:8000/products/5. 这仅显示id为5的所有图像。现在,我想在视图中显示数据库中所有产品的所有图像,但按产品名称分组。i、 e所有的图像让我们来看id为1,2,3的。。将显示在视图中。这是我的控制器中的代码。我如何调整这个 public function getImageData($id) {

我试图显示多个图像,这在Laravel7中运行良好。我有一个产品和图片,其中一个产品有很多图片。我可以使用这样的url查看单个产品的所有图像http://localhost:8000/products/5. 这仅显示id为5的所有图像。现在,我想在视图中显示数据库中所有产品的所有图像,但按产品名称分组。i、 e所有的图像让我们来看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($productImages[0] as $productImages){
    // Do the magic here
}

因此,如果我理解正确,您希望从数据库中获取所有图像,但按产品排序吗?@Zeppo是的,这正是我想要的。谢谢,至少我在dd()时可以看到一些数据,但我的前端有问题。请协助我获取foreach()提供的错误无效参数。这是代码@foreach($productImages[0]作为$image)filename}“/>@endforeach@user3736334因此,您实际上需要执行嵌套的FoorLoop。第一个循环必须以项目为目标,内部门循环必须以图像为目标。通过这样做,您将能够打印它们:)解析数据可能会有一些困难,但我相信您会解决的。谢谢Zeppo,如果您知道任何教程,您还可以推荐一个教程来指导我