ajaycalicut17/laravel-trash
最新稳定版本:v1.0.3
Composer 安装命令:
composer require ajaycalicut17/laravel-trash
包简介
Laravel package to manage soft delete.
关键字:
README 文档
README
The Laravel "soft delete" functionality is effectively managed through the use of this package. It works like trash in your system.
Installation ⚙️
- You can install the package via composer:
composer require ajaycalicut17/laravel-trash
- Run migrations to create tables for this package:
php artisan migrate
- Check model is "soft delete" able, this package work by using laravel "soft delete" functionality:
<?php namespace App\Models; + use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable { + use SoftDeletes; }
- To enable this package for a model, add the Ajaycalicut17\LaravelTrash\Traits\Trashable trait to the Eloquent model:
<?php namespace App\Models; + use Ajaycalicut17\LaravelTrash\Traits\Trashable; use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable { + use SoftDeletes, Trashable; }
- To start listening "trashed" model event, define a $dispatchesEvents property on your Eloquent model:
<?php namespace App\Models; + use Ajaycalicut17\LaravelTrash\Events\MoveToTrash; use Ajaycalicut17\LaravelTrash\Traits\Trashable; use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable { use SoftDeletes, Trashable; + + /** + * The event map for the model. + * + * @var array + */ + protected $dispatchesEvents = [ + 'trashed' => MoveToTrash::class, + ]; }
- To override the trash name (Optional):
<?php namespace App\Models; use Ajaycalicut17\LaravelTrash\Events\MoveToTrash; use Ajaycalicut17\LaravelTrash\Traits\Trashable; + use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable { use SoftDeletes, Trashable; /** * The event map for the model. * * @var array */ protected $dispatchesEvents = [ 'trashed' => MoveToTrash::class, ]; + + public static function trashName(Model $model): string + { + return static::class.' '.$model->id; + } }
- Publishing the config file (Optional):
php artisan vendor:publish --provider="Ajaycalicut17\LaravelTrash\LaravelTrashServiceProvider" --tag="config"
- To periodically delete the model from the trash, add model:prune Artisan command in your application's App\Console\Kernel class and change the config\trash.php pruning status to "true", you can also enter your pruning period here. (Optional):
+ use Ajaycalicut17\LaravelTrash\Models\Trash; /** * Define the application's command schedule. */ protected function schedule(Schedule $schedule): void { + $schedule->command('model:prune', [ + '--model' => Trash::class, + ])->daily(); }
Usage 🔨
- To get all trash model data:
Trash::all();
- To get all trash model and associated model data:
Trash::with('trashable')->get();
- To restore associated model form trash:
Trash::first()->restoreFromTrash();
- To delete trashed model and associated model:
Trash::first()->deleteFromTrash();
- To delete all trashed model and associated model:
Trash::emptyTrash();
Testing 🧪
composer test
Changelog 🚀
Please see CHANGELOG for more information what has changed recently.
Contributing 🤝
Please see CONTRIBUTING for details.
Credits 🔥
License 📃
The MIT License (MIT). Please see License File for more information.
统计信息
- 总下载量: 23
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 5
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2023-09-15