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='系统配置表';
<?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);
}
}
}
$data = [
[
'key' => 'name',
'value' => '辰风沐阳',
],
[
'key' => 'age',
'value' => 20,
],
[
'key' => 'info',
'value' => [
'city' => 'henan',
'nickname' => 'liang',
],
],
];
(new ConfigModel)->saveAll($data);
halt(ConfigModel::select()->toArray());