hnhdigital-os / laravel-model-change-tracking
Provides support for tracking current user against model changes for the Eloquent ORM
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-10-22 02:12:28 UTC
README
This package provides a number of traits to track changes made to a model.
Install
Via composer:
$ composer require hnhdigital-os/laravel-model-change-tracking ~1.0
This package's service provider will autoload from Laravel 5.5.
To enable the service provider in versions prior to Laravel 5.4, edit the config/app.php:
'providers' => [ ... Bluora\LaravelModelChangeTracking\ServiceProvider::class, ... ];
State Change
Track state changes on your model and by which user for the following states - created
, updated
, deleted
, and restored
.
Attribute Change Trait
Adds a saving
event to the model to track changes to all attribute values.
Change by User Trait
Adds events to set a attribute to the current user for when a model is created
, updated
, archived
, or deleted
.
Usage
User tracking of changes.
Add a created_by
, updated_by
, archived_by
, and deleted_by
attributes to your model's database table.
namespace App\Models; use Bluora\LaravelModelChangeTracking\ChangeByUserTrait; use Illuminate\Database\Eloquent\Model; class User extends Model { use ChangeByUserTrait; }
Turn off tracking attribute
You can turn off by returning false.
public function getCreatedByColumn() { return false; } public function getUpdatedByColumn() { return false; } public function getArchivedByColumn() { return false; } public function getDeletedByColumn() { return false; }
Different attribute name
You can specify the attribute name in the return value.
public function getCreatedByColumn() { return 'created_by'; } public function getUpdatedByColumn() { return 'updated_by'; } public function getArchivedByColumn() { return 'updated_by'; } public function getDeletedByColumn() { return 'deleted_by'; }
Track state changes of models
Tracks model state changes externally in database table.
namespace App\Models; use Bluora\LaravelModelChangeTracking\LogStateChangeTrait; use Illuminate\Database\Eloquent\Model; class User extends Model { use LogStateChangeTrait; }
Log each attribute value change
Tracks attribute value changes.
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', ]; }