Laravel10/Nova4.27中头像为空或不存在时显示默认头像的方法
在Laravel Nova 4中设置头像字段的默认 fallback 图
针对你的需求,只需给Image字段添加displayUsing()方法,自定义显示逻辑即可:
- 首先引入Storage门面(如果文件顶部未引入):
use Illuminate\Support\Facades\Storage;
- 修改你的头像字段定义:
Image::make(__('Avatar'), 'avatar') ->disk('local') ->path('public/avatars') ->prunable() ->deletable(true) ->displayUsing(function ($value) { // 检查字段有值且对应文件存在 if ($value && Storage::disk('local')->exists("public/avatars/{$value}")) { return Storage::disk('local')->url("public/avatars/{$value}"); } // 返回public/img下的默认头像URL return asset('img/default-avatar.png'); });
逻辑说明
- 当
avatar字段有值,且对应local磁盘的public/avatars目录下存在该文件时,显示用户上传的头像 - 若字段为空,或文件不存在(比如手动删除了存储的文件但数据库仍有记录),则自动加载
public/img/default-avatar.png作为默认头像
注意:请将default-avatar.png替换成你实际使用的默认头像文件名。
内容的提问来源于stack exchange,提问作者mstdmstd
相关产品推荐
相关产品推荐

