getDirty()在delete()观察者方法中的软删除的项目,Laravel 5.8 [英] getDirty() Soft Deleted Item in deleted() Observer Method, Laravel 5.8

查看:113
本文介绍了getDirty()在delete()观察者方法中的软删除的项目,Laravel 5.8的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在每次删除项目时都删除图像,所以我尝试使用观察器并将代码放入已删除的方法中,但是尽管我使用的是软删除,但仍无法获取已删除的数据.

I want to delete an image every time I delete an item so I tried using an observer and put my code in deleted method, but I can't get deleted data although I'm using soft delete.

我已经在观察者中尝试过,但是失败了.

I already try this in my observer, but it fail.

public function deleted(Board $board)
{
    $thisBoard  = Board::withTrashed()->getDirty();
    $imageName  = $thisBoard['image'];

    Storage::delete("public/" . $board->getImageFolder() . $imageName);
    Storage::delete("public/" . $board->getImageFolder() . "thumbnail/{$imageName}");
}

是否有任何适当的方法来获取观察者事件中的最后一个软删除的数据?

Is there any proper way to get the last soft-deleted data in the observer event?

推荐答案

在模型类中创建delete方法,以覆盖现有的删除方法.这样,当您删除木板时,它是图像或可以同时删除的图像条目.

Create delete method in your model class to overwrite existing delete mothod. This way when you delete Board, it's image or entries for images you can delete at same time.

public function delete()
{
    $this->deleteBoardImages();
    return parent::delete();
}

public function deleteBoardImages()
{
    Model::where('board_id', $this->id)->delete(); // You write your delete image code here.
}

这篇关于getDirty()在delete()观察者方法中的软删除的项目,Laravel 5.8的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆