yajra / laravel-auditable
A simple Laravel user auditing package for Eloquent Model.
Fund package maintenance!
yajra
Installs: 146 770
Dependents: 4
Suggesters: 0
Security: 0
Stars: 157
Watchers: 3
Forks: 23
Open Issues: 1
Requires
- php: ^8.2
- illuminate/database: ^11.0
- illuminate/support: ^11.0
Requires (Dev)
- larastan/larastan: ^2.9.1
- laravel/pint: ^1.14
- orchestra/testbench: ^9.0
- pestphp/pest: ^2.34
- pestphp/pest-plugin-laravel: ^2.3
- rector/rector: ^1.0
This package is auto-updated.
Last update: 2024-10-25 07:26:13 UTC
README
Laravel Auditable is a simple Laravel auditing package for your Eloquent Model. This package automatically inserts/updates an audit log on your table on who created and last updated the record.
Laravel Version Compatibility
Install via Composer
composer require yajra/laravel-auditable:^11
Publish config file
If you want to modify the withDefault
option on auditable columns, you may publish the config file.
php artisan vendor:publish --tag=auditable
Usage
Update your model's migration and add created_by
and updated_by
field using the auditable()
blueprint macro.
Schema::create('users', function (Blueprint $table) { $table->increments('id'); $table->string('name', 100); $table->auditable(); $table->timestamps(); });
Then use AuditableTrait
on your model.
namespace App; use Yajra\Auditable\AuditableTrait; class User extends Model { use AuditableTrait; }
Soft Deletes
If you wish to use Laravel's soft deletes, use the auditableWithDeletes()
method on your migration instead:
Schema::create('users', function (Blueprint $table) { $table->increments('id'); $table->string('name', 100); $table->auditableWithDeletes(); $table->timestamps(); $table->softDeletes() });
Afterwards, you need to use AuditableWithDeletesTrait
on your model.
namespace App; use Yajra\Auditable\AuditableWithDeletesTrait; class User extends Model { use AuditableWithDeletesTrait, SoftDeletes; }
Dropping columns
You can drop auditable columns using dropAuditable()
method, or dropAuditableWithDeletes()
if using soft deletes.
Schema::create('users', function (Blueprint $table) { $table->dropAuditable(); });
And you're done! The package will now automatically add a basic audit log for your model to track who inserted and last updated your records.
Change log
Please see CHANGELOG for more information what has changed recently.
Testing
composer test
Contributing
Please see CONTRIBUTING and CONDUCT for details.
Security
If you discover any security related issues, please email aqangeles@gmail.com instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.