bahirul/yii2-autonumber

Yii 框架的自动编号扩展 + 增强

安装: 282

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 17

类型:yii2-extension

1.6 2018-08-09 02:53 UTC

This package is auto-updated.

Last update: 2024-09-13 10:30:08 UTC


README

用于生成格式化自动编号的 Yii2 扩展。可用于生成文档编号。

此扩展是从 mdm/yii2-autonumber 分支而来,并进行了一些修改。

安装

安装此扩展的首选方式是通过 composer

运行以下命令之一

php composer.phar require --prefer-dist bahirul/yii2-autonumber "~1.0"

或将以下内容添加到您的 composer.json 文件的 require 部分中。

"bahirul/yii2-autonumber": "~1.0"

使用方法

通过执行 yii migrate 准备所需的表。

yii migrate --migrationPath=@bahirul/yii2/autonumber/migrations

如果您不想使用数据库迁移,可以手动创建所需的表。

CREATE TABLE auto_number (
    "group" varchar(32) NOT NULL,
    "number" int,
    optimistic_lock int,
    update_time int,
    PRIMARY KEY ("group")
);

一旦安装了此扩展,只需修改您的 ActiveRecord 类

public function behaviors()
{
	return [
		[
			'class' => 'bahirul\yii2\autonumber\Behavior',
			'attribute' => 'sales_num', // required
			'group' => $this->id_branch, // optional
			'value' => 'SA.'.date('Y-m-d').'.?' , // format auto number. '?' will be replaced with generated number or you can use " 'value' => function($event){ return 'SA.'.date('Y-m-d').'.?' } " as long the return value contain '?' character
			'digit' => 4 // optional, default to null. 
		],
	];
}

// it will set value $model->sales_num as 'SA.2014-06-25.0001'

您可以使用此扩展作为验证器,而不是行为

public function rules()
{
    return [
        [['sales_num'], 'autonumber', 'format'=>'SA.'.date('Y-m-d').'.?'],
        ...
    ];
}