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.
You can install the package via composer:
composer require dillingham/soft-deletes-parentAdd the parent_deleted_at column to your table:
Schema::table('posts', function (Blueprint $table) {
$table->softDeletesParent();
});And add the trait and parent model to your child model:
<?php
namespace App\Models;
use Dillingham\SoftDeletesParent\SoftDeletesParent;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
use SoftDeletesParent;
}<?php
namespace App\Providers;
class AppServiceProvider
{
public function register()
{
Post::softDeletesParent(Author::class);
}
}With parent trashed:
Post::withParentTrashed()->get();Only parent trashed:
Post::onlyParentTrashed()->get();composer testPlease see CONTRIBUTING for details.
Please review our security policy on how to report security vulnerabilities.
The MIT License (MIT). Please see License File for more information.