从数据库中删除记录后,如何删除文件? (Laravel)

时间:2019-05-20 21:53:52

标签: php laravel

我的数据库注册是

$cover = Storage::disk('public')->putFile('images', $file);
$article->cover = $cover;
$article->save();

文章表通过级联连接到另一个表,当删除记录时,文章记录也被删除。在文章表中注册的文件路径,但仍位于文件夹中。我该如何删除文件?

编辑

Schema::create('articles', function (Blueprint $table) {
        $table->bigIncrements('id');
        $table->unsignedBigInteger('blog_id')->nullable();
        $table->timestamps();

        $table->foreign('blog_id')
        ->references('id')
        ->on('blogs')
        ->onDelete('cascade');
    });

删除博客记录时,文章记录也被删除。所以我无法在控制器中进行任何处理。

1 个答案:

答案 0 :(得分:1)

您的模型中需要这样的东西:

public static function boot ()
{
    parent::boot();

    self::deleting(function ($file) {

            Storage::disk('public')->delete('images/'.$file);

    });