zaengle / audits
A package to manage model audits
Installs: 7 028
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/zaengle/audits
Requires
- php: ^8.1|^8.2|^8.3
- ext-json: *
- illuminate/console: 8.*|9.*|10.*|11.*|12.*
- illuminate/support: 8.*|9.*|10.*|11.*|12.*
Requires (Dev)
- mockery/mockery: >=0.9.9
- orchestra/testbench: ~8.0
- phpunit/phpunit: >=4.1
README
Audits
This packages records changes to a Laravel model and stores them in a json column on the model.
Usage
Use the MakesAudits trait on your model.
Next add a nullable json column to your model. By default the package will look for a column called audits. To override the auditable column, change the $auditableColumn property on your model.
protected $auditableColumn = 'audits';
Finally add a json cast for the auditable column.
protected $casts = [ 'audits' => 'json', ];
This is all you need to get started. The package will automatically record changes to the model and store them in the audits column.
If you ever need to save arbitrary data to the audit log you may do so by calling the manualAudit method.
$model = Model::find(1); $model->manualAudit([ 'field' => 'value', ]);
Occasionally you may want to bypass writing to the audit log. In those cases you can override the shouldTriggerAudit function on your model like so:
// MyModel.php public function shouldTriggerAudit(): bool { return $someCondition ? true : false; }
Attributions
If you are looking for a more robust solution, this package is worth checking out: Laravel Auditor
