Model Change Tracking in Laravel 11 - Laravel Auditing

Model Change Tracking in Laravel 11 - Laravel Auditing

If you want to keep track of your application you can achieve this by laravel auditing package. We will implement laravel audit package in laravel 11, which is laravel latest version.

Laravel Auditing package allows you to keep track of changes made to records, ensuring you can monitor and review modifications to your application's data. It offers a way to audit various events that occur on your models like ‘created’,’updated’,'deleted’,’restored’. This package is particularly useful for applications that require an audit trail for debugging,  historical analysis,etc.

Installation

This package should be installed via composer.

composer require owen-it/laravel-auditing

Publishing the config file.This will create the config/audit.php configuration file

php artisan vendor:publish --provider "OwenIt\Auditing\AuditingServiceProvider" --tag="config"

Publishing the audits table migration

php artisan vendor:publish --provider "OwenIt\Auditing\AuditingServiceProvider" --tag="migrations"

Now we need to migrate 

php artisan migrate

Now we need to migrate

php artisan config:clear php artisan cache:clear

Setting Up the Model

Make sure your Eloquent model implements AuditableContract and uses the Auditable trait.

namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use OwenIt\Auditing\Contracts\Auditable as AuditableContract; use OwenIt\Auditing\Auditable; class Post extends Model implements AuditableContract { use HasFactory,Auditable; protected $fillable = ['title', 'content']; }

If you go to the config/audit.php.You will this :

'events' => [ 'created', 'updated', 'deleted', 'restored' ],

It means it will create the audit for these 4 events.When any of the events triggered the audit will be created.

Test the Auditing

 "Eloquent events fired from a Job or from the console (i.e. migrations, tests, commands, Tinker, ...), WILL NOT be audited by default."

reference : https://laravel-auditing.com/guide/introduction.html

Route::get('/', function () { $post = Post::create(['title' => 'New Post', 'content' => 'Post content']); $audits = $post->audits; // Fetch audit logs dd($audits, $post); });
Tags
Laravel Audit Laravel 11 Audit Track Model Events Laravel Audit In Laravel 11 Debug Laravel App Laravel Audit Package Track Logs Laravel Model Change Tracking Eloquent Auditing