Soft Deleting
Introduction
JCC-Eloquent supports soft deletes using a deleted_at column.
When soft deletes are enabled on a model:
- deleting a model sets
deleted_atinstead of removing the row - default queries exclude rows where
deleted_atis notnull - you can include or isolate trashed rows with query helpers
Enable soft deletes on a model
TypeScript
Soft deletes are disabled by default (softDeletes = false).
Add the deleted_at column in migration
Use the schema helper:
TypeScript
Querying trashed and non-trashed rows
Use model query helpers:
TypeScript
Deleting and restoring
Instance delete and restore
TypeScript
Bulk restore
TypeScript
Event behavior with soft deletes
Soft-deleting still triggers model lifecycle events:
deletingbefore settingdeleted_atdeletedafter the updaterestoringandrestoredaround restore flow
Use deleteQuietly() if you need to skip events on an instance.
