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
Requires
- php: ^8.1
- illuminate/database: ^9.0|^10.0|^11.0
- illuminate/support: ^9.0|^10.0|^11.0
Requires (Dev)
- orchestra/testbench: ^7.0|^8.0|^9.0
- phpunit/phpunit: ^9.5|^10.1
README
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.