r4nkt/laravel-manageable

Track users who manages models in your Laravel app. (Forked from signifly/laravel-manageable.)

v5.0.0 2024-03-18 14:07 UTC

README

Latest Version on Packagist Build Status StyleCI Quality Score Total Downloads

The r4nkt/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');

Likewise, the macro unmanageable does the following to your table:

$this->dropForeign(['created_by']);

$this->dropForeign(['updated_by']);

$this->dropColumn(['created_by', 'updated_by']);

Documentation

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

Installation

You can install the package via composer:

composer require r4nkt/laravel-manageable

The package will automatically register itself.

You can publish the config with:

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

Testing

composer test

Security

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

Credits

License

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