TP6.0 模型JSON字段的使用 【系统配置表 key-value】
2024-09-11
30
1. 数据表结构
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. 测试数据
更新于:1个月前$data = [
[
'key' => 'name',
'value' => '辰风沐阳',
],
[
'key' => 'age',
'value' => 20,
],
[
'key' => 'info',
'value' => [
'city' => 'henan',
'nickname' => 'liang',
],
],
];
(new ConfigModel)->saveAll($data);
halt(ConfigModel::select()->toArray());
赞一波!
相关文章
- .NET Core Razor page/MVC 返回json忽略空属性
- 【说站】Python字典和json的比较
- 【说站】php解析json数据
- 【说站】php返回json数据
- java 安全沙箱模型详解
- TP6.0 模型获取器
- TP6.0 模型的关联删除
- 什么是json5?它和json的区别
- vscode中自动将json格式的内容自动生成对应的代码
- TP6.0 一对一模型关联 belongsTo 相对关联(反向关联)
- TP6.0 一对一模型关联 hasOne
- TP6模型类在PhpStorm中没有方法提示
- ThinkPHP6.0 模型搜索器的使用
- 原生js格式化json
- Pretty Json 插件 - JSON格式化
- json5新特性
- TP6.0 模型搜索器
- json python中的转储函数
- 如何在 Django 中创建抽象模型类?
- 用于从 JSON 响应中提取单个值的 Python 程序
文章评论
评论问答