ramdani10/lara-autonumber

此包最新版本(v1.0.0)没有可用的许可证信息。

Laravel 包,用于为 Eloquent 创建自动编号

v1.0.0 2022-07-04 07:04 UTC

This package is not auto-updated.

Last update: 2024-09-24 16:09:39 UTC


README

Laravel 包,用于 Eloquent 模型创建自动编号

安装

通过 composer 安装此包

composer require ramdani10/lara-autonumber

config/app.php 中注册 ServiceProvider

'providers' => [
    // ...
    Ramdani10\AutoNumber\AutoNumberServiceProvider::class,
],

发布配置

php artisan vendor:publish --provider='Ramdani\AutoNumber\AutoNumberServiceProvider'

运行迁移

php artisan migrate

用法

在模型中使用 Ramdani10\AutoNumber\AutoNumberTrait 特性

实现方法 getAutoNumberOptions()

use Ramdani10\AutoNumber\AutoNumberTrait;
    
class Category extends Model
{
    use AutoNumberTrait;
    
    /**
     * Return the autonumber configuration array for this model.
     *
     * @return array
     */
    public function getAutoNumberOptions()
    {
        return [
            'code' => [
                'format' => 'CA.?', // autonumber format. '?' will be replaced with the generated number.
                'length' => 3 // digits number
            ]
        ];
    }

}

传递一个 closure 用于格式值。

public function getAutoNumberOptions()
{
    return [
        'order_number' => [
            'format' => function () {
                return 'CA/' . date('Ymd') . '/?'; // autonumber format. '?' will be replaced with the generated number.
            }
            'length' => 5 // The number of digits in the autonumber
        ]
    ];
}

保存模型

$category = Category::create([
    'name' => 'Category A',
]);

根据格式自动生成代码。

dd($category->code);

// CA/20170803/00001