三十、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();


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部