首页 > 解决方案 > 如何在 Laravel 中显示数据库中的图像

问题描述

我有一个通过购买注册到应用程序的管理模板。该模板设置得非常好,其中一部分是用 Laravel 编写的。我可以在我的修改中注册新用户,但用户个人资料图像有问题。当新注册的用户生效时,文件名存储在相应的数据库中。但是,图像无法显示。检查应用程序代码时,我什至可以在 Google Chrome 网络工具中看到图像名称。此图像正在保存,只是没有显示在网页上(至少没​​有显示在侧边栏上)。

@if (auth()->user()->profile->pic == null)
    <img src="{{asset('storage/uploads/users/no_avatar.jpg')}}" alt="user-img" class="img-circle">
@else
    <img src="{{ auth()->user()->profile->pic }}" alt="user-img" class="img-circle">
@endif

如果我做错了什么,那一定是基本的 Laravel 问题。我不知道如何,但图像必须能够从数据库中获取并显示在我拉起或导航到的视图中。如果有人能告诉我如何像任何其他 Laravel 应用程序一样在前端视图中正确包含个人资料图片,那将对我有很大帮助。谢谢你。

标签: phpdatabaselaravellaravel-bladeavatar

解决方案


为了访问您的存储路径,您可以使用storage_path帮助函数而不是asset您的代码应该是:

storage_path('uploads/users/no_avatar.jpg');

对于已上传图片的用户,如果您将图片的相对路径存储在公用文件夹中,则可以使用

{{ url(auth()->user()->profile->pic) }}

如果值auth()->user()->profile->pic是,那么您的项目目录中img/profile.jpg应该包含img文件夹。profile.jpgpublic


推荐阅读