muktar-sayedsaleh / laravel-custom-ids-generator
一个为 Laravel 开发者提供的 PHP 包,允许他们为任何模型生成自定义格式的 ID。
dev-main
2023-06-22 08:39 UTC
This package is auto-updated.
Last update: 2024-09-22 11:14:32 UTC
README
一个为 Laravel 开发者提供的 PHP 包,允许他们为任何模型生成自定义格式的 ID。
如何安装?
composer require muktar-sayedsaleh/laravel-custom-ids-generator
如何使用?
use MuktarSayedSaleh\LaravelCustomIds\IdsGenerator; use App\Models\User; $generator = new IdsGenerator(); $id = $generator->next( $model=User::class ); // $id will be 000001 // Use the generated ID ($id) however you want.
IdsGenerator 参数
- $model: Laravel 模型类(必需)。
- $prefix: 所需的前缀(如有,可选,默认值: '')。
- $suffix: 所需的后缀(如有,可选,默认值: '')。
- $sequence_length: 所需的序列号长度(可选,默认值: 6)。
- $format: 生成 ID 所需的格式(可选,默认值: '{prefix}{sequence}{suffix}')。接受的占位符包括
{prefix}
前缀{suffix}
后缀{sequence}
序列号{Y}
年份,格式为 YYYY{y}
年份,格式为 YY{F}
月份,格式为 January 到 December{M}
月份的简写,格式为 Jan 到 Dec,三个字母{m}
月份的数字表示,带前导零,格式为 01 到 12{n}
月份的数字表示,不带前导零,格式为 1 到 12{l}
月份的文本表示,格式为 Sunday 到 Saturday,三个字母{D}
月份的文本表示,格式为 Mon 到 Sun,三个字母{d}
月份的天数,两位数,带前导零,格式为 01 到 31{j}
月份的天数,不带前导零,格式为 1 到 31anyothertext
将按原样渲染
- $unique_field_name: $model 模型中的一个字段,该函数将比较以确保生成的 ID 之前未使用。
高级示例
自定义前缀
use MuktarSayedSaleh\LaravelCustomIds\IdsGenerator; use App\Models\User; $generator = new IdsGenerator(); $id = $generator->next( model: User::class, prefix: 'Monjz' ); // $id will be Monjz000001 // Use the generated ID ($id) however you want.
自定义后缀
use MuktarSayedSaleh\LaravelCustomIds\IdsGenerator; use App\Models\User; $generator = new IdsGenerator(); $id = $generator->next( model: User::class, suffix: 'Monjz' ); // $id will be 000001Monjz // Use the generated ID ($id) however you want.
自定义前缀 & 后缀
use MuktarSayedSaleh\LaravelCustomIds\IdsGenerator; use App\Models\User; $generator = new IdsGenerator(); $id = $generator->next( model: User::class, prefix: 'Monjz', suffix: 'Monjz' ); // $id will be Monjz000001Monjz // Use the generated ID ($id) however you want.
自定义长度
use MuktarSayedSaleh\LaravelCustomIds\IdsGenerator; use App\Models\User; $generator = new IdsGenerator(); $id = $generator->next( model: User::class, sequence_length: 12 ); // $id will be 000000000001 // Use the generated ID ($id) however you want.
自定义格式
use MuktarSayedSaleh\LaravelCustomIds\IdsGenerator; use App\Models\User; $generator = new IdsGenerator(); $id = $generator->next( model: User::class, format: 'RFQS-{sequence}-2022' ); // $id will be RFQS-000001-2022 // Use the generated ID ($id) however you want.
自定义格式 - 高级
use MuktarSayedSaleh\LaravelCustomIds\IdsGenerator; use App\Models\User; $generator = new IdsGenerator(); $id = $generator->next( model: User::class, format: 'RFQS-{Y}-{M}-{n}-{l}-{sequence}' ); // $id will be RFQS-2022-Feb-2-Wednesday-000001 // Use the generated ID ($id) however you want.
带有唯一性检查
use MuktarSayedSaleh\LaravelCustomIds\IdsGenerator; use App\Models\User; $generator = new IdsGenerator(); $id = $generator->next( model: User::class, format: 'RFQS-{Y}-{M}-{n}-{l}-{sequence}', unique_field_name: 'reference_number' ); // $id will be RFQS-2022-Feb-2-Wednesday-000001 // Use the generated ID ($id) however you want.