JCC Express

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_at instead of removing the row
  • default queries exclude rows where deleted_at is not null
  • 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:

  • deleting before setting deleted_at
  • deleted after the update
  • restoring and restored around restore flow

Use deleteQuietly() if you need to skip events on an instance.