tihab / soft-deletes-parent
当父级软删除时,软删除子级
1.0.0
2023-03-12 06:56 UTC
Requires
- php: >=8.0
- illuminate/contracts: >=9.0
Requires (Dev)
- friendsofphp/php-cs-fixer: >=3.1
- nunomaduro/collision: >=6.1
- nunomaduro/larastan: >=0.7.12
- orchestra/testbench: >=6.15
- phpmd/phpmd: >=2.10
- phpunit/phpunit: >=9.3
- spatie/laravel-ray: >=1.23
README
当您恢复父级模型时,自动软删除模型的孩子,同时保持他们自己的软删除状态。安装以下特质后,每当删除或恢复 Author
模型时,Post
模型的 parent_deleted_at
将更新。这允许您在 Author
恢复后保持 Post
模型的原始 deleted_at
。当父级被删除时,Post
模型将查询范围设置为排除所有父级被删除的情况。
安装
您可以通过 composer 安装此包
composer require dillingham/soft-deletes-parent
使用方法
将 parent_deleted_at
列添加到您的表中
Schema::table('posts', function (Blueprint $table) { $table->softDeletesParent(); });
并将特质和父模型添加到您的子模型中
<?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); } }
范围
与父级已删除
Post::withParentTrashed()->get();
仅父级已删除
Post::onlyParentTrashed()->get();
测试
composer test
贡献
有关详细信息,请参阅CONTRIBUTING
安全漏洞
有关如何报告安全漏洞的详细信息,请审查我们的安全策略
鸣谢
许可
MIT 许可证 (MIT)。有关更多信息,请参阅许可文件