asif / laravel-model-logs
此包的最新版本(v1.0.0)没有可用的许可证信息。
v1.0.0
2023-07-30 16:12 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 许可证许可。