joelbutcher/laravel-archivable

用于 Laravel Eloquent 模型的可存档特性包

v1.11.0 2024-07-11 14:51 UTC

This package is auto-updated.

Last update: 2024-09-16 12:27:23 UTC


README

Laravel Archivable

Build Status Total Downloads Latest Stable Version License

一个简单的包,用于使 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;
    ...
}

扩展

此特性包附带以下扩展:archiveunArchivewithArchivedwithoutArchivedonlyArchived,可按需使用

$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 包模板 生成的。