deleted() 观察者方法中的 getDirty() 软删除项,Laravel 5.8

getDirty() Soft Deleted Item in deleted() Observer Method, Laravel 5.8

我想每次删除一个项目时都删除一个图像,所以我尝试使用观察者并将我的代码放在 deleted 方法中,但是我无法删除数据,尽管我使用的是软删除。

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

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}");
}

有什么合适的方法可以获取观察者事件中最后一次软删除的数据吗?

在您的模型中创建删除方法class以覆盖现有的删除方法。这样当你删除 Board 时,你可以同时删除它的图像或图像条目。

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.
}