我有一个查询,当特定资源从 Nova 中删除时,我想从服务器中删除该图像。
任何人都可以建议我有什么方法可以覆盖资源的删除方法。
编辑:如何挂钩 laravel nova 中资源的删除事件?
注意:我知道我们可以使用观察者。但我正在寻找另一个 方式。
为了挂钩 laravel nova 的删除资源事件,您没有内置方法。但是父模型有一个删除方法,您可以覆盖它并在那里做额外的工作
//app/ParentModel.php
public function delete() {
/* add your extra logic for deleted model */
parent::delete();
}
您可以像这样在模型中使用 boot :
public static function boot()
{
parent::boot();
self::deleted(function ($model) {
parent::remove($model, self::$index);
});
}
我使用了Observers并删除了函数Nova Resource Events并且工作正常
您还可以在资源上使用
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)
{
//
}