【问题标题】:Laravel Nova - How to remove image from disk when corresponding database entry is removed?Laravel Nova - 删除相应的数据库条目后如何从磁盘中删除图像?
【发布时间】:2021-12-09 10:12:09
【问题描述】:

我是 Laravel 和 Nova 的新手,想构建一个 Resource 以允许存储 image 以及其他一些数据。上传后,image file 存储在disk (storage/app/public) 中,而所有其他数据(包括image link)存储在数据库中。

stored image

database

当我删除Nova 中的这个数据库条目时,stored image 不受它的影响。这不会溢出我在生产中的存储吗? Nova 是否带有clear unused images from disk 的方法,还是我必须使用 Laravel 手动删除它?无论哪种情况,我都将不胜感激。

这是我的Resourcefields函数:

public function fields(Request $request)
{
    return [
        ID::make(__('ID'), 'id')->sortable(),
        Text::make('Heading'),
        Text::make('Content'),
        File::make('Image')->disk('public'),
    ];
}

【问题讨论】:

    标签: laravel eloquent laravel-nova


    【解决方案1】:

    Nova doc 通过将prunable 添加到Image function(或任何其他File function)为此提供了一个简单的解决方案:

    Image::make('Profile Photo')->disk('public')->prunable()
    

    这种方式在删除或更新图像时会从存储中删除图像。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-26
      • 2016-07-29
      • 2017-09-10
      • 1970-01-01
      • 2010-12-16
      • 1970-01-01
      • 1970-01-01
      • 2020-01-06
      相关资源
      最近更新 更多