TP6.0 模型JSON字段的使用 【系统配置表 key-value】
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. 测试数据
$data = [
[
'key' => 'name',
'value' => '辰风沐阳',
],
[
'key' => 'age',
'value' => 20,
],
[
'key' => 'info',
'value' => [
'city' => 'henan',
'nickname' => 'liang',
],
],
];
(new ConfigModel)->saveAll($data);
halt(ConfigModel::select()->toArray());
本站发布的内容若侵犯到您的权益,请邮件联系站长删除,我们将及时处理!
从您进入本站开始,已表示您已同意接受本站【免责声明】中的一切条款!
本站大部分下载资源收集于网络,不保证其完整性以及安全性,请下载后自行研究。
本站资源仅供学习和交流使用,版权归原作者所有,请勿商业运营、违法使用和传播!请在下载后24小时之内自觉删除。
若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,使用者自行承担,概与本站无关。