Laravel package to create autonumber for Eloquent model
wuwx/laravel-autonumber is a Laravel package for laravel package to create autonumber for eloquent model.
It currently has 1 GitHub stars and 2.668 downloads on Packagist (latest version v5.0.0).
Install it with composer require wuwx/laravel-autonumber.
Discover more Laravel packages by wuwx
or browse all Laravel packages to compare alternatives.
Last updated
Laravel package to create autonumber for Eloquent model
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
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
],
];
}
$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
Laravel-autonumber is open-sourced software licensed under the MIT license.
Please report any issue you find in the issues page. Pull requests are more than welcome.