如何在 Laravel 7 中使用 Livewire 显示存储路径中的图像

Posted

技术标签:

【中文标题】如何在 Laravel 7 中使用 Livewire 显示存储路径中的图像【英文标题】:How to Show Images from Storage Path using Livewire in Laravel 7 【发布时间】:2021-02-09 03:29:54 【问题描述】:

我是在电子商务 Laravel 7 项目中使用 Livewire 作为购物车的新手。我想显示购物车中每件商品的产品图片。我的表数据上有@foreach ($cartItems as $item)。当我尝试这段代码时

<img src="asset('storage/'.$item->cover_img)">

为了尝试显示保存到我的存储路径的图像,我收到了一个类似上图的错误。但是当我尝试时:

<img src="asset('storage/'.$item['cover_img'])">

我收到了ErrorException Undefined index: cover_img。除图像外,所有其他 $item 都在工作并获取所需的数据。在我的其他没有 livewire 的刀片上 <img src="asset('storage/'.$item->cover_img)> 工作正常。

如何在 livewire 中正确执行此操作?任何意见,将不胜感激。提前致谢!

当我执行dd($item) 时,这就是我得到的:

【问题讨论】:

您是否也尝试在您的 liveware 文件中应用相同的“箭头”语法?所以不要写$item['cover_img']$item->cover_img。你能以某种方式得到$item 在你的 Livewire 刀片中的输出吗? 你能检查dump(is_object($item))并判断它返回的是真还是假 我在尝试dump(is_object($item)) 时遇到了另一个错误ErrorException Trying to get property 'cover_img' of non-object 。当我尝试做dd($item) 时,我可以得到一个集合数组,包括cover-img。 它是一个数组,而不是一个对象。那么<img src=" asset($image['associatedModel']['cover_img']) " />? 感谢您的所有建议和帮助。我能够使用<img src=" asset('storage/'.$item['associatedModel']['cover_img']) " /> 使其工作。非常感谢! :) 【参考方案1】:

这解决了我的问题:

<img src=" asset('storage/'.$item['associatedModel']['cover_img'])  " />

谢谢!

【讨论】:

以上是关于如何在 Laravel 7 中使用 Livewire 显示存储路径中的图像的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Laravel Framework 7.29.3 中解析 laravel ui

如何在 Laravel 7 中使用原始 SQL 查询创建范围?

如何在 Laravel 7 中使用 Livewire 显示存储路径中的图像

如何使用laravel 7在db中传递数组

如何在 Laravel 7 中使用 Webpack.mix.js 使用多个 js?

如何将 laravel 版本从 8.x 降级到 7.x?