Soft Delete Child Models When a Parent is Deleted
Laravel Soft Deletes Parent is a package by Brian Dillingham that soft deletes child models when a parent model is soft-deleted:
Automatically soft delete a model’s children while maintaining their own soft-deleted state when you restore the parent model. After installing the trait below, the
parent_deleted_atwill update whenever an
Authormodel is deleted or restored. This allows you to maintain the original
Authoris restored. The
Postmodel will scope queries to exclude any where the parent is deleted.
To use this package, you’ll want to add a
parent_deleted_at column on the child database table (this package provides a migration helper to generate the correct column), add a trait to the child model, and register parent models.
Given a parent
Author model and a child
Post model, here’s how you’d set it up:
1// Use the `SoftDeletesParent` trait on the child model.
7class Post extends Model
9 use SoftDeletesParent;
12// Register parent models
15 public function register()
Now you can query with provided scopes
1// Get all posts, including soft-deleted records.
4// Get soft-deleted posts.
You can learn more about this package, get full installation instructions, and view the source code on GitHub.
Credit: Source link