soap / laravel-running-numbers
这是我的包laravel-running-numbers
v0.1.0
2024-09-05 12:44 UTC
Requires
- php: ^8.2
- illuminate/contracts: ^10.0||^11.0
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- larastan/larastan: ^2.0
- laravel/pint: ^1.14
- nunomaduro/collision: ^8.1.1||^7.10.0
- orchestra/testbench: ^9.0.0||^8.22.0
- pestphp/pest: ^2.34
- pestphp/pest-plugin-arch: ^2.7
- pestphp/pest-plugin-laravel: ^2.3
- phpstan/extension-installer: ^1.3
- phpstan/phpstan-deprecation-rules: ^1.1
- phpstan/phpstan-phpunit: ^1.3
- spatie/laravel-ray: ^1.35
README
该包提供了一个用于生成运行数字的类,并在数据库表中跟踪它们。一种运行数字类型可以有多个前缀来生成运行数字。生成的运行数字不存储在数据库中,仅保留每个前缀的最后数字。您可以将其重置为每个前缀指定的值。如果指定的类型和前缀在数据库中不存在,则将创建它并分配数字1。
支持我们
我们非常感谢您从家乡寄来明信片,并提到您正在使用我们的哪个包。您可以在我们的联系页面上找到我们的地址。我们将所有收到的明信片发布在我们的虚拟明信片墙上。
安装
您可以通过composer安装此包
composer require soap/laravel-running-numbers
您可以使用以下命令发布和运行迁移
php artisan vendor:publish --tag="running-numbers-migrations"
php artisan migrate
您可以使用以下命令发布配置文件
php artisan vendor:publish --tag="running-numbers-config"
这是已发布配置文件的内容
return [ 'table_prefix' => '', ];
使用
使用RunningNumber类生成运行数字已弃用。现在我引入了RunningNumberGenerator类。
这适用于版本低于0.0.6。
RunningNumber::generate('STUDENT_CODE', '672', 3); // 673001 RunningNumber::generate('STUDENT_CODE', '672', 3); // 673002 // Reset specified type and prefix to some value RunningNumber::reset('STUDENT_CODE', '672', 0); RunningNumber::generate('STUDENT_CODE', '672', 3); // 673001 RunningNumber::delete('STUDENT_CODE', '672');
这是我的实现。
namespace App\Observers; use App\Models\Student; use App\Models\EducationLevel; use Soap\Laravel\RunningNumbers\RunningNumber; class StudentObserver { /** * Handle the Student "creating" event. * * @return void */ public function creating(Student $student) { if (empty($student->student_code)) { $level = EducationLevel::find($student->education_level_id)->level; $prefix = ($student->registered_at->year + 543) % 100 . $level; $student->student_code = RunningNumber::generate('STUDENT_CODE', $prefix, 3); } } }
对于版本0.0.6及以上;
使用RunningNumberGenerator生成和重置值。
RunningNumberGenerator::make()
->type('STUDENT_CODE')->prefix("672")->generate();
如果没有提供类型,则使用'Default'。如果没有提供前缀,则使用date("Y")。
设置运行数字格式
可用的令牌有{TYPE},{PREFIX},{NUMBER}。这些信息将在数据库记录中跟踪。
RunningNumberGenerator::make()
->type('STUDENT_CODE')->prefix("672")->format("{PREFIX}-{NUMBER}")->generate();
将运行数字重置为指定值。
如果没有传递值,则为零值。调用generate(),运行数字将增加一个并保存到数据库中。
RunningNumberGenerator::make()
->type('STUDENT_CODE')->prefix("672")->->format("{PREFIX}-{NUMBER}")->reset()->generate();
// return 672-001
RunningNumberGenerator::make()
->type('STUDENT_CODE')->prefix("672")->->format("{PREFIX}-{NUMBER}")->reset(1)->generate();
// return 672-002
设置填充数字的长度。
如果没有设置长度,则默认为3。
RunningNumberGenerator::make()
->type('STUDENT_CODE')->prefix("672")->->format("{PREFIX}-{NUMBER}")->length(4)->reset()->generate();
// return 672-0001
Artisan命令
列表
Usage: runningnumber:list [<type> [<prefix>]] Arguments: type Type of running number prefix Prefix before running number
生成
Usage: runningnumber:generate [options] [--] <type> <prefix> Arguments: type Type of running number prefix Prefix before running number
重置
Usage: runningnumber:reset [options] [--] <type> <prefix> Arguments: type Type of running number prefix Prefix before running number Options: --value[=VALUE] Value to reset running number to [default: "1"]
删除
Usage: runningnumber:delete <type> <prefix> Arguments: type Type of running number prefix Prefix before running number
测试
composer test
变更日志
有关最近更改的更多信息,请参阅变更日志。
贡献
有关详细信息,请参阅贡献指南。
安全漏洞
有关如何报告安全漏洞的详细信息,请参阅我们的安全策略。
鸣谢
许可协议
MIT许可(MIT)。有关更多信息,请参阅许可文件。