Laravel可以使用其他相同日誌表中的軟刪除項目嗎? 其他表格中的所有軟刪除文件。Laravel - 軟刪除 - 將帖子移動到其他表格
我想在日誌表上創建事件調度程序(http://dev.mysql.com/doc/refman/5.6/en/events-overview.html)以在一段時間後刪除所有數據。
Laravel可以使用其他相同日誌表中的軟刪除項目嗎? 其他表格中的所有軟刪除文件。Laravel - 軟刪除 - 將帖子移動到其他表格
我想在日誌表上創建事件調度程序(http://dev.mysql.com/doc/refman/5.6/en/events-overview.html)以在一段時間後刪除所有數據。
幾種不同的方法來實現這一點。如果你想刪除的內容插入到另一個表然後註冊你想這個動作發生有關刪除事件的機型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();
}
第二種解決方案似乎非常好,但出於某種統計目的,移至其他數據庫也可以。只需從首先刪除並將數據放入統計頁面即可。第一個解決方案對於我正在考慮的日誌來說似乎很不錯。 – Maximi
爲什麼不做兩個?在任務中創建邏輯,以便將要刪除的記錄先插入另一個表中,然後將其刪除,而不是模型觀察者。 –
Laravel不能這樣開箱即用,但它不能是難寫這個你自己。 – Jerodev