wuwx / laravel-autonumber
Laravel package to create autonumber for Eloquent model
Installs: 2 414
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 3
Forks: 0
Open Issues: 0
Requires
- php: >=5.6.4 || ^7.0 || ^8.0
- illuminate/config: ^6.20|^7.0|^8.0
- illuminate/database: ^6.20|^7.0|^8.0
- illuminate/support: ^6.20|^7.0|^8.0
- laravel/helpers: ^1.0
README
Laravel package to create autonumber for Eloquent model
Installation
You can install the package via composer:
composer require wuwx/laravel-autonumber
Register the ServiceProvider in config/app.php
'providers' => [ // ... Wuwx\LaravelAutoNumber\AutoNumberServiceProvider::class, ],
Publish the default configuration
php artisan vendor:publish --provider='Wuwx\LaravelAutoNumber\AutoNumberServiceProvider'
Running migration
php artisan migrate
Usage
Your Eloquent models should use the Wuwx\LaravelAutoNumber\AutoNumberTrait
trait
The trait contains an abstract method getAutoNumberOptions()
that you must implement yourself.
use Wuwx\LaravelAutoNumber\AutoNumberTrait; class Order extends Model { use AutoNumberTrait; /** * Return the autonumber configuration array for this model. * * @return array */ public function getAutoNumberOptions() { return [ 'order_number' => [ 'format' => 'SO.?', // autonumber format. '?' will be replaced with the generated number. 'length' => 5, // The number of digits in an autonumber ], ]; } }
You can also pass a closure
for the format value.
public function getAutoNumberOptions() { return [ 'order_number' => [ 'format' => function () { return 'SO/' . date('Ymd') . '/?'; // autonumber format. '?' will be replaced with the generated number. }, 'length' => 5, // The number of digits in the autonumber ], ]; }
Saving Model
$order = Order::create([ 'customer' => 'Mr. X', ]);
The order_number will be automatically generated based on the format given when saving the Order model.
echo $order->order_number; // SO/20170803/00001
License
Laravel-autonumber is open-sourced software licensed under the MIT license.
Contributing
Please report any issue you find in the issues page. Pull requests are more than welcome.