mdmsoft / yii2-autonumber
为Yii框架提供的自动编号扩展
1.5.2
2019-11-20 02:29 UTC
Requires
- yiisoft/yii2: ~2.0
This package is not auto-updated.
Last update: 2024-09-14 14:09:12 UTC
README
Yii2扩展,用于生成格式化的自动编号。它可以用于生成文件编号。
安装
安装此扩展的首选方式是通过 composer。
运行以下命令之一:
php composer.phar require --prefer-dist mdmsoft/yii2-autonumber "~1.0"
或
"mdmsoft/yii2-autonumber": "~1.0"
将以下内容添加到您的 composer.json
文件的 require 部分中。
使用方法
通过执行 yii migrate 准备所需的表。
yii migrate --migrationPath=@mdm/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' => 'mdm\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 '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').'.?'], ... ]; }
新格式
从版本 1.5 开始,我们引入了新的数字格式。现在我们使用 {}
来评估日期,而数字的位数则表示为 ?
的数量。
public function rules() { return [ [['sales_num'], 'autonumber', 'format' => 'SA/{Y/m}/?.???'], ... ]; } // it will set value $model->sales_num as 'SA/2019/10/0.001' public function behaviors() { return [ [ 'class' => 'class' => 'mdm\autonumber\Behavior', 'attribute' => 'sales_num', // required 'value' => 'SA/{Y/m}/?.???' ] ]; } // another usage public function actionCreate() { $model = new Sales() $model->load(Yii::$app->request->post()); $model->sales_num = mdm\autonumber\AutoNumber::generate('SA/{Y/m}/?.???'); ... }