astalpaert/laravel-blamable is a Laravel package for laravel eloquent models blamable.
It currently has 2 GitHub stars and 38.318 downloads on Packagist (latest version v3.0.0).
Install it with composer require astalpaert/laravel-blamable.
Discover more Laravel packages by astalpaert
or browse all Laravel packages to compare alternatives.
Last updated
This package allow you to track who created, updated and deleted Eloquent models in Laravel.
You can install this package via composer using:
composer require astalpaert/laravel-blamable
The package will automatically register itself.
The package provides 2 convenient methods addBlamableFields() and removeBlamableFields() which you may use in your migrations to make sure that the database table has the required columns (created_by, updated_by and deleted_by).
public function up()
{
Schema::table('dummy_models', function (Blueprint $table) {
$table->addBlamableFields();
});
}
public function down()
{
Schema::table('dummy_models', function (Blueprint $table) {
$table->removeBlamableFields();
});
}
You may then use the Blamable trait on the model.
use Astalpaert\LaravelBlamable\Traits\Blamable;
use Illuminate\Database\Eloquent\Model;
class DummyModel extends Model
{
use Blamable;
//use SoftDeletes;
}
Et voilà ! The package will fill the blamable columns automatically after creating, updating and deleting the model.
To publish the config file to config/astalpaert-blamable.php run:
php artisan vendor:publish --provider="Astalpaert\LaravelBlamable\Providers\BlamableServiceProvider"
By default, the name attribute of the authenticated User is used to fill the blamable column. This is configurable in the config under attribute_name:
return [
'user' => [
'attribute_name' => 'name',
],
];
You may also use an accessor in the model for more flexibility:
public function getNameAttribute(): string
{
return "$this->first_name $this->last_name";
}
Note: The blamable fields are string columns, so make sure the name is a string.
By default, when there is no authenticated user, the value SYSTEM is used to fill the blamable column. This is configurable in the config under default:
return [
'user' => [
'default' => 'SYSTEM',
],
];