jeffersongoncalves / laravel-created-by
This Laravel package automatically logs the currently logged-in user's ID to the `created_by`, `updated_by`, `deleted_by`, and `restored_by` fields of your Eloquent models. It also automatically timestamps the `restored_at` field when a model is restored. This simplifies the tracking of data modific
Package info
github.com/jeffersongoncalves/laravel-created-by
pkg:composer/jeffersongoncalves/laravel-created-by
Fund package maintenance!
Requires
- php: ^8.2|^8.3
- laravel/framework: ^11.0|^12.0|^13.0
- spatie/laravel-package-tools: ^1.14.0
Requires (Dev)
- larastan/larastan: ^3.0
- orchestra/testbench: ^9.0|^10.0|^11.0
- pestphp/pest: ^3.7.4|^4.0
- pestphp/pest-plugin-laravel: ^3.0|^4.0
This package is auto-updated.
Last update: 2026-06-23 11:52:11 UTC
README
Laravel Created By
This Laravel package automatically logs the currently logged-in user's ID to the created_by, updated_by, deleted_by, and restored_by fields of your Eloquent models. It also automatically timestamps the restored_at field when a model is restored. This simplifies the tracking of data modifications and provides valuable auditing capabilities. The package is easy to install and configure, seamlessly integrating with your existing Laravel application.
Installation
You can install the package via composer:
composer require jeffersongoncalves/laravel-created-by
Usage
Add in columns our table.
Schema::create('posts', function (Blueprint $table) { $table->createdBy(); $table->updatedBy(); $table->deletedBy(); $table->restoredBy(); $table->restoredAt(); $table->softDeletes(); });
Your model add traits:
<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\SoftDeletes; use JeffersonGoncalves\CreatedBy\Models\Concerns\WithCreatedBy; use JeffersonGoncalves\CreatedBy\Models\Concerns\WithUpdatedBy; use JeffersonGoncalves\CreatedBy\Models\Concerns\WithDeletedBy; use JeffersonGoncalves\CreatedBy\Models\Concerns\WithRestoredBy; use JeffersonGoncalves\CreatedBy\Models\Concerns\WithRestoredAt; class Post extends Model { use SoftDeletes; use WithCreatedBy; use WithUpdatedBy; use WithDeletedBy; use WithRestoredBy; use WithRestoredAt; }
Configuration
You can publish the config file with:
php artisan vendor:publish --tag="created-by-config"
This is the contents of the published config file:
return [ // The authentication guard used to resolve the current user (null = default guard). 'guard' => null, // The column names used to store the audit information. 'columns' => [ 'created_by' => 'created_by', 'updated_by' => 'updated_by', 'deleted_by' => 'deleted_by', 'restored_by' => 'restored_by', 'restored_at' => 'restored_at', ], ];
Query Macros
Each trait registers query builder macros so you can filter and eager load by the audit columns:
// Filter by the user id stored in the column Post::query()->createdBy($userId)->get(); Post::query()->updatedBy($userId)->get(); Post::query()->deletedBy($userId)->get(); Post::query()->restoredBy($userId)->get(); // Eager load the related user relationship Post::query()->withCreatedBy()->get(); Post::query()->withUpdatedBy()->get(); Post::query()->withDeletedBy()->get(); Post::query()->withRestoredBy()->get();
Testing
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Credits
License
The MIT License (MIT). Please see License File for more information.
