[TOC] ## 示例 ~~~ $this->fieldsRule = [ 'id' => [ 'type' => 'int',// 入库时候自动处理格式 'label' => 'ID', 'form' => [ // 表单相关配置 'elem' => 'hidden',// 默认表单类型 'update_elem' => 'hidden', // 修改时表单类型 如果没有默认使用elem ], 'table' => [],// 表格相关配置 ], 'username' => [ 'type' => 'string', 'label' => '用户名', 'filter' => 'trim',// 入库前的数据回调处理 支持函数 模型方法 匿名函数 'form' => [ 'elem' => 'text' ], ], 'password' => [ 'type' => 'string', 'label' => '密码', 'filter' => function($value) { return md5($value); }, 'form' => [ 'elem' => 'password' ], ], 'sex' => [ 'type' => 'string', 'label' => '性别', 'form' => [ 'elem' => 'radio', 'options' => [ 'nan' => '男', 'nv' => '女', 'bm' => '保密' ] ], ], 'create_time' => [ 'type' => 'int', 'label' => '创建日期', 'form' => [ 'elem' => 0 ], ], 'update_time' => [ 'type' => 'int', 'label' => '修改日期', 'form' => [ 'elem' => 0 ], ] ]; ~~~ 格式:`字段` => 字段属性数组 用于利用模型自定生成表单、列表等的规则定义。 ## 字段属性 ### `label` 用于定义字段的人类可认名称 ### `type` 用于定义模型数据入库前的自动转换规则 目前支持的`type`值和数据转换规则,如下: `string`:默认,入库前自动使用`strip_tag`函数过滤字段值 `text`:同`string` `integer`、`int`:入库前自动使用`intval`函数过滤字段值 `double`、`float`:入库前自动使用`floatval`函数过滤字段值 `time`:入库前自动使用`strtotime`函数过滤字段值;用于`date`、`datetime`时值自动转换为时间戳存储 `blob`:入库前自动使用`gzcompress`函数过滤字段值 `blob.array`:入库前自动使用`gzcompress(serialize(值))`函数过滤字段值 `html`:暂无进行任何处理,富文本字段要用它,不然默认是`string`会把你html标签结构过滤掉 `array`:入库前自动使用`json_encode`函数将数组类型值转换为json字符串存储 如需更多规则,可以自行在`app\common\model\traits\Event.php`文件中的`beforeValidate`方法中自行加,代码你们一看就秒懂。 **注:** 如入库的字段没有在`fieldsRule`中定义,不会自动进行任何的过滤处理。 ### `filter` 用于定义模型数据入库前的自定义过滤处理 如果`type`不足的地方,可以采用filter自定义入库前的回调过滤处理。 `filter`支持的3种方式: 1、简单函数名(可以是php内置函数名,也可以是自定义函数名)字符串,该函数只支持接收一个参数,比如填trim:用于入库前去除前后空格 2、模型方法名,会将当前值和所有字段数据都传给你,你的返回值就是该字段入库的值 3、匿名函数,会将当前值和所有字段数据都传给你,你的返回值就是该字段入库的值 ### `form` 数组,用于定义当前字段表单相关属性 `form`下可以定义的表单属性: `elem` :默认的表单类型,它的值应该是[https://www.kancloud.cn/laowu199/npadmin/2704205#_1](https://www.kancloud.cn/laowu199/npadmin/2704205#_1)或自定义类型 `update_elem`:后台修改操作时的表单类型,如不填写,默认使用`elem`的类型 表单更多属性见:[https://www.kancloud.cn/laowu199/npadmin/2704205#_34](https://www.kancloud.cn/laowu199/npadmin/2704205#_34) ### `table`数组,用于定义当前字段表格相关属性 ...