是否可以使用Laravel,它可以在其他相同的日志表中包含软删除的项目? 其他表中的所有软删除文件。
我希望在日志表上创建事件调度程序(http://dev.mysql.com/doc/refman/5.6/en/events-overview.html)以在一段时间后删除所有数据。
答案 0 :(得分:3)
完成此任务的几种不同方法。如果要将已删除的项目插入另一个表格,请在要删除事件时要对此操作进行的模型上注册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();
}