如何在头像字段为空或未找到文件时显示默认头像?

问题描述 投票:0回答:1

在 Laravel 10 / nova 4.27 应用程序中的用户资源中,我定义了头像字段

        Image::make(__('Avatar'), 'avatar')->disk('local')->path('public/avatars')->prunable()->deletable(true),

我想知道当头像字段为空或找不到文件时,我可以通过什么方式显示位于 publis/img 下的默认头像?

laravel-nova
1个回答
0
投票

尝试使用

resolveUsing()
方法

Image::make(__('Avatar'), 'avatar')
    ->disk('local')
    ->path('public/avatars')
    ->prunable()
    ->deletable(true)
    ->resolveUsing(function ($value) {
        // Check if the avatar exists
        if ($value && Storage::disk('local')->exists("public/avatars/{$value}")) {
            return "avatars/{$value}";
        }

        // Return the default image if the avatar is missing
        return 'avatars/default.jpg';
   }),

这也可以通过 Laravel Nova 的内置头像字段来完成:

Laravel\Nova\Fields\Avatar

© www.soinside.com 2019 - 2024. All rights reserved.