#### 1. 數(shù)據(jù)表結(jié)構(gòu) --- ```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 '創(chuàng)建時間', `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='系統(tǒng)配置表'; ``` #### 2. 定義系統(tǒng)配置表模型 --- ``` <?php declare(strict_types=1); namespace app\index\model; use think\Model; /** * 系統(tǒng)配置表模型 * * @mixin \think\Model */ class Config extends Model { // 設(shè)置json類型字段 protected $json = ['value']; // 設(shè)置JSON數(shù)據(jù)返回數(shù)組 protected $jsonAssoc = true; // +------------------------------------------------ // | 模型事件 // +------------------------------------------------ /** * 新增前 */ public static function onBeforeInsert($model) { // 當(dāng)value是字符串時,框架沒有對數(shù)據(jù)進行json編碼處理,此時需要自己手動處理 if (is_string($model->value)) { $model->value = json_encode($model->value, JSON_UNESCAPED_UNICODE); } } } ``` #### 3. 測試數(shù)據(jù) --- ```php $data = [ [ 'key' => 'name', 'value' => '辰風(fēng)沐陽', ], [ 'key' => 'age', 'value' => 20, ], [ 'key' => 'info', 'value' => [ 'city' => 'henan', 'nickname' => 'liang', ], ], ]; (new ConfigModel)->saveAll($data); halt(ConfigModel::select()->toArray()); ```