JSON欄位(查詢建構器11)


JSON資料寫入

$user['name'] = 'thinkphp';
$user['info'] = [
	'email'    => 'thinkphp@qq.com',
	'nickname' => '流年',
];
Db::name('user')
	->json(['info'])
	->insert($user);

JSON資料查詢

##查詢整個JSON資料:

$user = Db::name('user')
	->json(['info'])
	->find(1);
dump($user);

查詢條件為JSON資料

$user = Db::name('user')
	->json(['info'])
    ->where('info->nickname','ThinkPHP')
	->find();
dump($user);

由於JSON欄位的屬性類型並不會自動取得,所以,如果是整數資料查詢的話,可以設定JSON欄位類型,例如:

$user = Db::name('user')
	->json(['info'])
    ->where('info->user_id', 10)
	->setFieldType(['info->user_id' => 'int'])
	->find();
dump($user);

JSON資料更新

完整JSON資料更新

$data['info'] = [
	'email'    => 'kancloud@qq.com',
	'nickname' => 'kancloud',
];
Db::name('user')
	->json(['info'])
    ->where('id',1)
	->update($data);

單一JSON資料更新

$data['info->nickname'] = 'ThinkPHP';
Db::name('user')
	->json(['info'])
    ->where('id',1)
	->update($data);

#