tfsthiagobr98/laravel-naming-series

为您的模型生成自定义ID

2.0.0 2024-03-14 12:57 UTC

README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

在这里放置您的描述。限制在一到两段话。考虑添加一个小的示例。

安装

您可以通过composer安装此包

composer require tfsthiagobr98/laravel-naming-series

您可以使用以下命令发布和运行迁移

php artisan vendor:publish --tag="laravel-naming-series-migrations"
php artisan migrate

您可以使用以下命令发布配置文件

php artisan vendor:publish --tag="laravel-naming-series-config"

这是发布后的配置文件内容

return [
    'database' => [
        'connection' => null,
        'table' => 'naming_series',
    ],
    'split_with' => '.',
    'initial_increment' => 1000,
];

使用方法

use TFSThiagoBR98\LaravelNamingSeries\Contracts\HasNamingSeries;
use TFSThiagoBR98\LaravelNamingSeries\Concerns\UsingNamingSeries;

class Contract extends Model implements HasNamingSeries
{
    use UsingNamingSeries;

    /**
     * Indicates if the model uses unique ids.
     *
     * @var bool
     */
    public $usesUniqueIds = true;

    /**
     * Field => Format list for model fields
     *
     * @var array<string,string>
     */
    public static function getSerieList(): array
    {
        return [
            'code' => 'CNT-.YY.MM.####',
        ];
    }

    /**
     * Get the columns that should receive a unique identifier.
     *
     * @return array
     */
    public function uniqueIds()
    {
        return [
            'code' => 'getSeriesField', // your series field
        ];
    }

可用别名

序列格式必须使用.字符分割成部分。例如:CNT-.YY.MM.#### 其中:CNT-是字面字符串,YYMM是变量,####是顺序号。

  • #:数字序列(())
  • YY:年份(2位数字)
  • YYYY:年份(4位数字)
  • MM:月份
  • DD:日
  • WW:ISO周计数
  • TS:时间戳(毫秒)
  • TL:时间戳(秒)

测试

composer test

变更日志

请参阅CHANGELOG了解最近更改的更多信息。

贡献

请参阅CONTRIBUTING了解详细信息。

安全漏洞

请审查我们的安全策略了解如何报告安全漏洞。

鸣谢

许可协议

MIT许可协议(MIT)。有关更多信息,请参阅许可文件