hnhdigital-os / laravel-model-change-tracking
为 Eloquent ORM 提供了对当前用户与模型变更的跟踪支持
1.0.3
2018-03-10 13:28 UTC
Requires
- php: >=5.4.0
- diff/diff: 2.*
Requires (Dev)
- codeclimate/php-test-reporter: dev-master
- illuminate/database: 4.*|5.*
- phpunit/phpunit: 4.*
- symfony/process: ~2.3
This package is auto-updated.
Last update: 2024-09-22 02:01:40 UTC
README
此包提供了一些特性来跟踪模型变更。
安装
通过 composer
$ composer require hnhdigital-os/laravel-model-change-tracking ~1.0
此包的服务提供程序将从 Laravel 5.5 自动加载。
要启用 Laravel 5.4 之前的版本中的服务提供程序,请编辑 config/app.php
'providers' => [ ... Bluora\LaravelModelChangeTracking\ServiceProvider::class, ... ];
状态变更
跟踪模型的状态变更以及变更的用用户,以下状态:created
、updated
、deleted
和 restored
。
属性变更特性
为模型添加一个 saving
事件以跟踪所有属性值的变更。
用户变更特性
为模型在 created
、updated
、archived
或 deleted
时添加事件,以设置当前用户的属性。
用法
用户变更跟踪。
将 created_by
、updated_by
、archived_by
和 deleted_by
属性添加到模型的数据库表中。
namespace App\Models; use Bluora\LaravelModelChangeTracking\ChangeByUserTrait; use Illuminate\Database\Eloquent\Model; class User extends Model { use ChangeByUserTrait; }
关闭跟踪属性
您可以通过返回 false 来关闭。
public function getCreatedByColumn() { return false; } public function getUpdatedByColumn() { return false; } public function getArchivedByColumn() { return false; } public function getDeletedByColumn() { return false; }
不同的属性名
您可以在返回值中指定属性名。
public function getCreatedByColumn() { return 'created_by'; } public function getUpdatedByColumn() { return 'updated_by'; } public function getArchivedByColumn() { return 'updated_by'; } public function getDeletedByColumn() { return 'deleted_by'; }
跟踪模型的状态变更
在数据库表中外部跟踪模型状态变更。
namespace App\Models; use Bluora\LaravelModelChangeTracking\LogStateChangeTrait; use Illuminate\Database\Eloquent\Model; class User extends Model { use LogStateChangeTrait; }
记录每个属性值变更
跟踪属性值变更。
namespace App\Models; use Bluora\LaravelModelChangeTracking\LogChangeTrait; use Illuminate\Database\Eloquent\Model; class User extends Model { use LogChangeTrait; protected $do_not_log = [ 'password', 'remember_token', ]; }