bluora / laravel-model-change-tracking
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 not auto-updated.
Last update: 2022-02-01 12:56:12 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', ]; }