mingyuanyun / dynamicfields
基于天际PAAS的个性化动态字段方案实现,应对前端PaaS化页面中的表单拖拉拽增加一个扩展字段能力,此组件只需增加简单的模块配置,零代码就能无感知和无侵入地拥有动态字段的能力。
v1.0.5
2022-01-17 08:09 UTC
Requires
- php: >=5.6
- yiisoft/yii2: *
This package is auto-updated.
Last update: 2024-10-17 14:44:38 UTC
README
云链智慧工程公共组提供的应对天际PaaS的个性化动态字段的后端中间件方案支持,基于Yii2框架的行为特性进行封装,只需要后端接口增加简单的模块配置,零代码就能无感知和无侵入地拥有动态字段的能力。
配套数据库扩展表结构
参考一下sql建立扩展表,xxx表示某业务功能主表
create table if not exists xxx_paas_extra (
`biz_id` CHAR(36) default ''not null comment '业务id',
`x__customer_a` VARCHAR(500) default '' null comment '自定义字段a',
`x__customer_b` VARCHAR(500) default '' null comment '自定义字段b',
`x__customer_c` VARCHAR(500) default '' null comment '自定义字段c',
`x__customer_d` VARCHAR(500) default '' null comment '自定义字段d',
`x__customer_e` VARCHAR(500) default '' null comment '自定义字段e',
`x__customer_f` VARCHAR(500) default '' null comment '自定义字段f',
`x__customer_g` VARCHAR(500) default '' null comment '自定义字段g',
`x__customer_h` VARCHAR(500) default '' null comment '自定义字段h',
`x__customer_i` VARCHAR(500) default '' null comment '自定义字段i',
`x__customer_j` VARCHAR(500) default '' null comment '自定义字段j',
`created_on` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`created_by` char(36) DEFAULT '' COMMENT '创建人',
`modified_on` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
`modified_by` char(36) DEFAULT '' COMMENT '修改人',
`update_timestamp` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间时间戳',
`is_deleted` tinyint(1) DEFAULT '0' COMMENT '是否删除',
primary key (`biz_id`)
) engine = innodb charset = utf8 comment ='xxx功能paas扩展表';
配置与使用
在controller中,增加behaviors的方法,并返回一下配置
class DemoController extends \yii\web\Controller
{
public function behaviors()
{
return [
[
'class' => \DynamicFields\DynamicFieldsBehavior::class,
'actions' => [
'set' => [
'保存接口的action'
],
'get' => [
'获取详情接口的action'
]
],
'prefix' => '扩展字段的前缀,比如 x__',
'mainTable' => '业务功能的主表,比如 users',
'mainTablePrimaryKey' => '业务功能主表的主键,比如 id',
'bizId' => '扩展表的主键,对应主表的ID,比如 biz_id',
'responseBodyDataField' => '接口响应体的数据字段,比如 data',
'conn' => '访问数据库对象,比如 \Yii::$app->getDb()',
]
];
}
...
}
配置说明
配置项 | 类型 | 默认值 | 说明 |
---|---|---|---|
actions | array | 无 | 必填,否则不起作用。actions需要指定保存扩展字段的action和获取扩展字段的action |
prefix | string | x__ | 必填,扩展字段的前缀,用于区分扩展字段参数与业务字段参数 |
mainTable | string | 无 | 必填,业务功能的主表表名 |
mainTablePrimaryKey | string | id | 功能主表的主键名 |
bizId | string | biz_id | 扩展表的主键名,映射主表的主键 |
responseBodyDataField | string | data | 获取详情接口返回值中的数据字段 |
conn | object | \Yii::$app->db | 访问数据库的对象,默认为Yii中的db组件 |