poluektov-software / laravel-relation-restore
用于删除和恢复相关模型的包
1.0.0
2019-11-20 11:58 UTC
Requires
- php: >=7.1.0
This package is auto-updated.
Last update: 2024-09-20 23:23:53 UTC
README
描述
Laravel Relation Restore - 用于删除和恢复相关模型的Laravel包。该包使用软删除方法。当需要删除和恢复具有复杂相关模型链的模型时,该包可能非常有用。
安装
将以下内容添加到composer.json文件中的require部分
"poluektov-software/laravel-relation-restore": "*"
$ php composer update
或
$ php composer require poluektov-software/laravel-relation-restore
用法
在数据库中,您必须为每个模型创建一个额外的字段。例如,在迁移中,您可以添加以下行
//... $table->integer( 'remove_code' )->nullable(); //...
您需要在模型中使用Relationship Restore特性
//... use Poluektov\RelationRestore\RelationRestore; /** * Class Model * * @package App\Models */ class Model { use RelationRestore; //...
每个模型必须有一个唯一的代码
//... protected $autoRemoveCode = 100; //...
您必须通过方法autoRemove和autoRestore分别删除和恢复相关模型
/** * Model events handlers. * */ public static function boot() { parent::boot(); static::deleting( function ( Model $model ) { $model->relatedModels->each( function ( $relatedModel ) { $relatedModel->autoRemove( $model->getAutoRemove() ); } ); } ); static::restoring( function ( Model $model ) { $model->relatedModels()->onlyAutoRemoved( $model->getAutoRemove() )->each( function ( $relatedModel ) { $relatedModel->autoRestore(); } ); } ); }
许可证
本软件包是开源软件,根据MIT许可证授权。