Laravel - 软删除 - 将帖子移至其他 table

Laravel - soft delete - move posts to other table

是否可以与 Laravel 一起使用,它可以在其他相同的日志 table 中软删除项目? 其他 table.

中的所有软删除文件

我想在日志 table 事件调度程序 (http://dev.mysql.com/doc/refman/5.6/en/events-overview.html) 上创建一段时间后删除所有数据。

实现此目的的几种不同方法。如果您想将已删除的项目插入到另一个 table 中,请在您希望在删除事件时发生此操作的模型上注册一个 model listener

MyModel::deleting(function($model) {
    DeletedItems::create([
        // Your model fields here
    ]);
});

--或--

如果你想在项目被软删除一段时间后真正从数据库中删除项目,我建议使用 Scheduled Task。由于软删除为您提供了一个时间戳,您可以在您的任务中引用它。

例如,以下将删除软删除超过一个月的所有模型:

protected function schedule(Schedule $schedule)
{
    $schedule->call(function () {
        MyModel::withTrashed()
            ->whereDate('deleted_at', '<', Carbon::today()->subMonth())
            ->forceDelete();
    })->daily();
}