三十、ThinkPHP6_JSON字段

注意事项

  1. MySql 版本 >= 5.7
  2. 数所库存储 json 字段的类型必须是 json类型。
  3. 如果 json 中的值有整数,必须查询时使用 setFieldType([‘info->age’=>‘int’]) 说明

一、数据库 JSON

  1. 数据库写入,查询 JSON 字段,可以通过数组方式完成
$data = [
	'name' => '张三',
	'age' => 18
	'list' => ['addrss'=>'在家',15],
];
//写入
Db::name('user')->json(['list'])->insert($data);
//查询
Db::name('user')->json(['list'])->find(12);
  1. 将 json 字段里的数据作为查询条件
$user = Db::name('user')
	->josn(['list'])
	->where('list->age',13)
	->setFieldType(['list->age'=>'int'])
	->find();
  1. 修改 json 数据
//完全修改
$data['list']=['name'=>'李四','gender'=>'男'];
Db::name('user')->json(['list'])->where('id',278)->update($data);
//部分修改
$data['list->name']='王五';
Db::name('user')->json(['list'])->where('id',23)->update($data);

二、模型JSON

1.写入,查询的 json 字段,

//模型端
protected $json=['list'];

//控制器端
//模型方法新增包含字段
$user = new UserModel();
$user->name = '张三';
$user->list = ['name'=>'张三','gender'=>'女'];
$user->save();
  1. 通过对象方式,进行对 json 字段的写入操作
$user = new UserModel();
$list = new \StdClass();
$list->name = '李四';
$list->gender = '男';
$user->list = $list;
$user->save();
  1. 通过对象调用方式,直接获取 json 里面的数据
$user = UserModel::find(1);
return $user->list->name;
  1. 通过 json 的数据查询,获取一条数据
$user = UserModel::where('list->username','李四')->find();

  1. 更新修改 json 数据 ,直接通过对象方式
$user = UserModel::find(237);
$user->list->name='王五';
$user->save();
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值