litvinjuan/laravel-cascade-soft-deletes
Composer 安装命令:
composer require litvinjuan/laravel-cascade-soft-deletes
包简介
Cascades soft delete and restored operations to the defined relationships
README 文档
README
This package is for cascading soft delete and restore operations on your related models. When a model gets soft deleted, the configured related models get soft deleted as well. When the original model is restored, its soft-deleted related models algo get restored.
Installation
You can install the package via composer:
composer require litvinjuan/laravel-cascade-soft-deletes
You can publish the config file with:
php artisan vendor:publish --tag="laravel-cascade-soft-deletes-config"
Soft Deleting
Simply add the trait to your models and configure the cascading relations either via the cascadeSofDeleteRelations property or the getRelationsForCascadeSoftDeletes method.
If your cascading related model also has the CascadeSoftDeletes trait, its related models will also be soft-deleted.
In the following example, soft deleting a project, will also soft delete its tasks. And soft deleting a team, will soft delete its projects, and in turn, all their respective tasks will also be soft deleted.
class Team extends Model { use CascadeSoftDeletes; protected $cascadeSofDeleteRelations = ['projects']; public function projects() { return $this->hasMany(Project::class); } } class Project extends Model { use CascadeSoftDeletes; protected $cascadeSofDeleteRelations = ['tasks']; public function team() { return $this->belongsTo(Team::class); } public function task() { return $this->hasMany(Task::class); } } class Task extends Model { public function project() { return $this->belongsTo(Project::class); } }
Restoring
Restoration works very similarly. By default, it restores the same relations that were soft deleted, but you can customize the relations to be restored by setting the cascadeRestoreRelations or implementing the getRelationsForCascadeRestore.
If you want to disable restoration all together, go into the cascade-soft-deletes config and set cascade_restores to false.
By default, when restoring related models, the package will only restore models that were deleted at the same time or after the parent model. This is to make sure we don't restore a child model that was soft deleted individually in a previous time. If you want to restore all models regardless of when they were soft deleted, you can go into the configuration file and set ignore_deleted_at_when_restoring to true.
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
License
The MIT License (MIT). Please see License File for more information.
litvinjuan/laravel-cascade-soft-deletes 适用场景与选型建议
litvinjuan/laravel-cascade-soft-deletes 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 4.26k 次下载、GitHub Stars 达 0, 最近一次更新时间为 2024 年 09 月 26 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「laravel」 「litvinjuan」 「laravel-cascade-soft-deletes」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 litvinjuan/laravel-cascade-soft-deletes 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 litvinjuan/laravel-cascade-soft-deletes 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 litvinjuan/laravel-cascade-soft-deletes 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Connect your Laravel application to the Shopify API
Alfabank REST API integration
Package to interact with AFIP (afip.gob.ar)
A Payments package for Laravel
Laravel package for Accurate Online API integration.
Shared RCX Laravel DataTables UI and configuration helpers.
统计信息
- 总下载量: 4.26k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 7
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2024-09-26