temistocle1998 / laravel-model-tracker
一个用于跟踪模型变化的Laravel包,包括旧值、新值以及负责更改的用户
v1.2.2
2024-09-21 12:47 UTC
Requires
- php: ^7.3|^8.0
- illuminate/support: ^8.0|^9.0|^10.0|^11.0
Requires (Dev)
- phpunit/phpunit: ^9.0
This package is auto-updated.
Last update: 2024-09-24 16:59:23 UTC
README
这是一个为您的Laravel "Tracker"包提供的示例 README.md
Laravel Model Tracker
一个轻量级的Laravel包,用于跟踪模型中的更改。自动记录所有更改,包括旧值、新值和负责更改的用户。
功能
- 自动跟踪任何Eloquent模型中的更改。
- 存储更新字段的旧值和新值。
- 记录更改的用户(如果已认证)。
- 通过简单的特质提供易于集成的功能。
- 可配置以排除跟踪的字段。
- 包括一个迁移,用于在
model_changes
表中存储日志。
要求
- Laravel 8.x或9.x
- PHP 7.4或更高版本
安装
-
通过Composer安装
composer require temistocle1998/laravel-model-tracker
-
发布配置和迁移文件
php artisan vendor:publish --tag=tracker-config php artisan migrate
-
将
TracksChanges
特质添加到您的模型中在您想要跟踪更改的任何模型中,只需包含
TracksChanges
特质即可use Tracker\Traits\TracksChanges; class Product extends Model { use TracksChanges; }
配置
该包附带一个可以自定义以满足您需求的配置文件。配置文件位于config/tracker.php
。
示例配置
return [ 'enabled' => true, // Enable or disable the tracking 'exclude_fields' => ['password', 'remember_token'], // Fields you don't want to track ];
用法
一旦设置好包,使用TracksChanges
特质对模型进行的任何更改都将自动记录。日志存储在model_changes
表中。
更改日志示例
当模型更新时,以下日志将在model_changes
表中创建
检索模型更改
您可以使用ModelChange
模型获取模型更改。
use Tracker\Models\ModelChange; // Get all changes for a specific model $changes = ModelChange::where('model_type', 'App\Models\Product') ->where('model_id', $productId) ->get(); // Display the changes foreach ($changes as $change) { echo $change->changes; }
在视图中显示更改
您还可以在视图中显示更改。
@foreach ($product->changes as $change) <p>Field: {{ $change['field'] }} | Old Value: {{ $change['old_value'] }} | New Value: {{ $change['new_value'] }}</p> @endforeach
贡献
如果您想为此包做出贡献,请随时提交拉取请求。所有贡献都受欢迎!
许可
此包根据MIT许可证授权。有关详细信息,请参阅LICENSE文件。