如何在 laravel nova 中挂钩资源的删除事件?

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

我有一个查询,当特定资源从 Nova 中删除时,我想从服务器中删除该图像。

任何人都可以建议我有什么方法可以覆盖资源的删除方法。

编辑:如何挂钩 laravel nova 中资源的删除事件?

注意:我知道我们可以使用观察者。但我正在寻找另一个 方式。

laravel laravel-5.7 laravel-nova
4个回答
5
投票

为了挂钩 laravel nova 的删除资源事件,您没有内置方法。但是父模型有一个删除方法,您可以覆盖它并在那里做额外的工作

    //app/ParentModel.php

    public function delete() {
       /* add your extra logic for deleted model */

       parent::delete();
    }

0
投票

您可以像这样在模型中使用 boot :

public static function boot()
{
    parent::boot();
    self::deleted(function ($model) {
        parent::remove($model, self::$index);
    });
}

0
投票

我使用了Observers并删除了函数Nova Resource Events并且工作正常


0
投票

您还可以在资源上使用

afterDelete
方法。

查看 Nova

HasLifecycleMethods
上的
Resource
特征。

/**
 * Register a callback to be called after the resource is deleted.
 *
 * @param  \Laravel\Nova\Http\Requests\NovaRequest  $request
 * @param  \Illuminate\Database\Eloquent\Model  $model
 * @return void
 */
public static function afterDelete(NovaRequest $request, Model $model)
{
    //
}
© www.soinside.com 2019 - 2024. All rights reserved.