joelbutcher / laravel-archivable
用于 Laravel Eloquent 模型的可存档特性包
v1.11.0
2024-07-11 14:51 UTC
Requires
- php: ^7.3|^8.0
- illuminate/database: ^7.0|^8.0|^9.0|^10.0|^11.0
- illuminate/support: ^7.0|^8.0|^9.0|^10.0|^11.0
Requires (Dev)
- illuminate/pagination: ^7.0|^8.0|^9.0|^10.0|^11.0
- orchestra/testbench: ^6.3|^7.0|^8.0|^9.0
- phpunit/phpunit: ^8.4|^9.1|^10.5
README
一个简单的包,用于使 Laravel Eloquent 模型可存档。此包允许通过创建用于方法链的宏来轻松存档模型。
安装
您可以通过 composer 安装此包
composer require joelbutcher/laravel-archivable
用法
迁移
Archivable
特性类似于 Laravel 的 SoftDeletes
特性。此包还附带了一个有用的宏用于 Laravel 的 \Illuminate\Database\Schema\Blueprint
。要开始使用,只需将 archivedAt
宏添加到迁移中,如下所示
Schema::create('posts', function (Blueprint $table) { $table->id(); $table->unsignedBigInteger('user_id'); $table->string('title'); $table->timestamps(); $table->archivedAt(); // Macro });
Eloquent
现在,您可以安全地将 Archivable
特性包含到您的 Eloquent 模型中
namespace App\Models; use \Illuminate\Database\Eloquent\Model; use \LaravelArchivable\Archivable; class Post extends Model { use Archivable; ... }
扩展
此特性包附带以下扩展:archive
、unArchive
、withArchived
、withoutArchived
、onlyArchived
,可按需使用
$user = User::first(); $user->archive(); $user->unArchive(); $usersWithArchived = User::query()->withArchived(); $onlyArchivedUsers = User::query()->onlyArchived();
默认情况下,此特性的全局作用域在特性添加到模型时使用 withoutArchived
扩展。
测试
composer test
变更日志
请参阅 CHANGELOG 了解最近更改的详细信息。
贡献
请参阅 CONTRIBUTING 了解详情。
安全性
如果您发现任何与安全性相关的问题,请发送电子邮件至 joel@joelbutcher.co.uk 而不是使用问题跟踪器。
致谢
许可
MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件。
Laravel 包模板
此包是用 Laravel 包模板 生成的。