laravel-appkit/blameable

4,058
Install
composer require laravel-appkit/blameable
Latest Version:v1.2.0
PHP:^7.4|^8.0
License:MIT
Last Updated:Jan 8, 2025
Links: GitHub  ·  Packagist
Maintainer: darrencoutts118

Eloquent Blameable

Latest Version on Packagist Build Status Quality Score Total Downloads Licence codecov

This package allows you to store the creator (created_by) and last editor (edited_by) of an Eloquent Model. You can also store the user who soft deleted a model.

Installation

You can install the package via composer:

composer require laravel-appkit/blameable

Usage

First, add the created_at, updated_at (and optionally deleted_at) columns to your table. This can be done via the blameable method in your migration.

Schema::create('articles', function (Blueprint $table) {
    $table->increments('id');
    $table->string('title');
    $table->text('body');
    $table->timestamps();

    // add this line to create the columns
    $table->blameable(); // pass in true as the first argument to enable soft deletes columns
});

Next, add the AppKit\Blameable\Traits\Blameable trait to the model

<?php

namespace App\Models;

use AppKit\Blameable\Traits\Blameable;
use Illuminate\Database\Eloquent\Model;

class Article extends Model
{
    use Blameable;

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'title',
        'body'
    ];
}

The id of the user can be accessed via the created_at, updated_at and deleted_at attributes on the model.

Relationships have also been setup to fetch an instance of the user model

$article = Article::first();

$article->creator // the user model that created the article
$article->editor // the user model that last updated the article
$article->deleter // the user model that soft deleted the article

Testing

composer test

Tests are run automatically when a PR is created.

Changelog

Please see CHANGELOG for more information what has changed recently. The file is automatically updated.

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email appkit-security@coutts.io instead of using the issue tracker.

Please see SECURITY for more details.

Credits

License

The MIT License (MIT). Please see License File for more information.

Related Packages

rmasters/culpa

Adds Blameable support to Eloquent models in Laravel

2,160 24
richan-fongdasen/eloquent-blameable

Blameable behavior implementation for your Eloquent Model in Laravel

233,747 34
astalpaert/laravel-blamable

Laravel Eloquent models blamable

40,933 2
doctrine/dbal

Powerful PHP database abstraction layer (DBAL) with many features for database s...

631,580,251 9,707
laravel/framework

The Laravel Framework.

580,311,802 34,925