asif/laravel-model-logs

此包的最新版本(v1.0.0)没有可用的许可证信息。

v1.0.0 2023-07-30 16:12 UTC

This package is auto-updated.

Last update: 2024-09-30 01:57:42 UTC


README

laravel-model-logs 包提供了一个简单的方法来跟踪对 Eloquent 模型的更改并将它们记录到 audit_logs 表中。它允许您保留对模型所做的所有更改的历史记录,这对于审计目的、用户活动跟踪等非常有用。

安装

您可以通过运行以下命令使用 Composer 安装此包

composer require asif/laravel-model-logs

安装包后,Laravel 将自动发现服务提供者。

使用方法

步骤 1:设置数据库

在开始使用此包之前,您需要在数据库中创建 audit_logs 表。您可以通过运行迁移来使用提供的迁移文件创建表

php artisan migrate

步骤 2:将 LogChanges 特性添加到您的模型中

要开始跟踪模型上的更改,请将 LogChanges 特性添加到您要监控的每个模型中。该特性提供在模型创建、更新或删除时自动记录更改所需的功能。

use Asif\LaravelModelLogs\Traits\LogChanges;
use Illuminate\Database\Eloquent\Model;

class YourModel extends Model
{
    use LogChanges;

    // Rest of your model code...
}

步骤 3:自定义跟踪事件(可选)

默认情况下,LogChanges 特性跟踪所有事件:'created'、'updated' 和 'deleted'。但是,您可以通过在每个模型中添加 $trackedEvents 属性来自定义每个模型的跟踪事件。如果未定义该属性,则包将跟踪所有事件。

use Asif\LaravelModelLogs\Traits\LogChanges;
use Illuminate\Database\Eloquent\Model;

class YourModel extends Model
{
    use LogChanges;

    /**
     * Customize the tracked events for this model.
     *
     * @var array<string>
     */
    protected $trackedEvents = ['created', 'updated'];

    // Rest of your model code...
}

步骤 4:定义可记录字段(可选)

您可以通过在每个模型中添加 $loggable 属性来进一步自定义应记录的模型字段,包含您想跟踪的字段名称数组。如果未提供此属性,则包将记录所有字段。

use Asif\LaravelModelLogs\Traits\LogChanges;
use Illuminate\Database\Eloquent\Model;

class YourModel extends Model
{
    use LogChanges;

    /**
     * The attributes that should be logged in the audit log.
     *
     * @var array<string>
     */
    protected $loggable = ['name', 'email'];

    // Rest of your model code...
}

许可证

laravel-model-logs 包是开源软件,根据 MIT 许可证许可。