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 data update

Complete JSON data update

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

Single JSON data update

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