d

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore.

15 St Margarets, NY 10033
(+381) 11 123 4567
ouroffice@aware.com

 

KMF

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 Post model’s parent_deleted_at will update whenever an Author model is deleted or restored. This allows you to maintain the original deleted_at for the Post model after Author is restored. The Post model 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.

2namespace AppModels;

3 

4use DillinghamSoftDeletesParentSoftDeletesParent;

5use IlluminateDatabaseEloquentModel;

6 

7class Post extends Model

8{

9 use SoftDeletesParent;

10}

11 

12// Register parent models

13class AppServiceProvider

14{

15 public function register()

16 {

17 Post::softDeletesParent(Author::class);

18 }

19}

Now you can query with provided scopes

1// Get all posts, including soft-deleted records.

2Post::withParentTrashed()->get();

3 

4// Get soft-deleted posts.

5Post::onlyParentTrashed()->get();

You can learn more about this package, get full installation instructions, and view the source code on GitHub.

Credit: Source link

Previous Next
Close
Test Caption
Test Description goes like this