#### 1. 数据表结构 --- ```sql CREATE TABLE `config` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', `uniacid` int(11) DEFAULT NULL COMMENT '平台ID', `type` varchar(60) DEFAULT NULL COMMENT '配置分组', `key` varchar(255) NOT NULL COMMENT '配置键', `value` text COMMENT '配置值', `delete_time` int(11) DEFAULT NULL COMMENT '软删除', `create_time` int(11) NOT NULL COMMENT '创建时间', `update_time` int(11) DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`id`) USING BTREE, UNIQUE KEY `uniacid` (`uniacid`,`key`) USING BTREE COMMENT '每个平台下的key唯一' ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='系统配置表'; ``` #### 2. 定义系统配置表模型 --- ``` <?php declare(strict_types=1); namespace app\index\model; use think\Model; /** * 系统配置表模型 * * @mixin \think\Model */ class Config extends Model { // 设置json类型字段 protected $json = ['value']; // 设置JSON数据返回数组 protected $jsonAssoc = true; // +------------------------------------------------ // | 模型事件 // +------------------------------------------------ /** * 新增前 */ public static function onBeforeInsert($model) { // 当value是字符串时,框架没有对数据进行json编码处理,此时需要自己手动处理 if (is_string($model->value)) { $model->value = json_encode($model->value, JSON_UNESCAPED_UNICODE); } } } ``` #### 3. 测试数据 --- ```php $data = [ [ 'key' => 'name', 'value' => '辰风沐阳', ], [ 'key' => 'age', 'value' => 20, ], [ 'key' => 'info', 'value' => [ 'city' => 'henan', 'nickname' => 'liang', ], ], ]; (new ConfigModel)->saveAll($data); halt(ConfigModel::select()->toArray()); ```