signifly/laravel-manageable

Track users who manages models in your Laravel app

v3.0.2 2023-11-21 13:18 UTC

README

Latest Version on Packagist Build Status StyleCI Quality Score Total Downloads

The signifly/laravel-manageable package allows you to easily track who creates/updates your models.

All you have to do to get started is:

// 1. Add required columns to your table by using our macro manageable
Schema::create('orders', function (Blueprint $table) {
    // ...
    $table->manageable();

    // params: $bigIntegers (default: true), $foreignTable (default: 'users'), $foreignKey (default: 'id')
    $table->manageable(false, 'some_users_table', 'u_id');
});

// 2. Add the Manageable trait to your model
class Order extends Model
{
    use Manageable;
}

The macro manageable adds the following to your table:

$this->unsignedBigInteger('created_by')->nullable()->index();
$this->unsignedBigInteger('updated_by')->nullable()->index();

$this->foreign('created_by')
    ->references('id')
    ->on('users')
    ->onDelete('set null');

$this->foreign('updated_by')
    ->references('id')
    ->on('users')
    ->onDelete('set null');

Documentation

Until further documentation is provided, please have a look at the tests.

Installation

You can install the package via composer:

composer require signifly/laravel-manageable

The package will automatically register itself.

You can publish the config with:

php artisan vendor:publish --provider="Signifly\Manageable\ManageableServiceProvider"

Testing

composer test

Security

If you discover any security issues, please email dev@signifly.com instead of using the issue tracker.

Credits

License

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