dekate / model-logger
Table changes logger
Installs: 67
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:lirary
pkg:composer/dekate/model-logger
Requires
- php: ^8.0.2
README
Tracking any changes to model into its own table.
Table Of Contents
Installation
install the package
composer require dekate/model-logger
publish config and migration
php artisan vendor:publish --tag=model-logger
Usage
use Dekate\ModelLogger\LogModel Trait into your model
ex.
<?php namespace App\Models; use Dekate\ModelLogger\LogModel; use Illuminate\Database\Eloquent\Model; class MyModel extends Model { use LogModel; /** The rest of the code */ }
To disable log for specific operation in a single model.
Add protected $disableLog to your model.
Valid values are string composed of C (create), U (update), and D (delete).
class YourModel extends Model { use LogModel; // disable Create log protected $disableLog = "C"; }
class YourModel extends Model { use LogModel; // disable Create Delete protected $disableLog = "CD"; }
Gotchas
Relationship
The sync() operation in a relation cannot be tracked with this trait.
Thus, we're providing syncWithRelation as an alternative.
/** You can change */ $myModel->myRelation()->sync([]) /** To */ $myModel->syncWithRelation('myRelation', []);
User Id
Responsible user for the changes are tracked with auth()->id().
So, we're unable to track the user if auth it's empty or not being used.
What we cannot track
- Anything with mass operation except
syncas explained above such asinsertordeletewith query builder. - Any changes with raw queries