hnhdigital-os / laravel-model-change-tracking
Provides support for tracking current user against model changes for the Eloquent ORM
Installs: 291
Dependents: 0
Suggesters: 0
Security: 0
Stars: 8
Watchers: 2
Forks: 0
Open Issues: 1
pkg:composer/hnhdigital-os/laravel-model-change-tracking
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: 2025-10-22 04:36:13 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', ]; }