soap/laravel-running-numbers

这是我的包laravel-running-numbers

v0.1.0 2024-09-05 12:44 UTC

This package is auto-updated.

Last update: 2024-09-05 12:47:15 UTC


README

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

该包提供了一个用于生成运行数字的类,并在数据库表中跟踪它们。一种运行数字类型可以有多个前缀来生成运行数字。生成的运行数字不存储在数据库中,仅保留每个前缀的最后数字。您可以将其重置为每个前缀指定的值。如果指定的类型和前缀在数据库中不存在,则将创建它并分配数字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)。有关更多信息,请参阅许可文件