JSON-Felder (Query Builder 11)


Schreiben von JSON-Daten

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

JSON-Datenabfrage

Fragen Sie die gesamten JSON-Daten ab:

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

Die Abfragebedingung sind JSON-Daten

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

Aufgrund des Attributtyps des JSON-Felds Es wird nicht automatisch abgerufen. Wenn es sich also um eine ganzzahlige Datenabfrage handelt, können Sie den JSON-Feldtyp festlegen, zum Beispiel:

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

JSON-Datenaktualisierung

Vollständige JSON-Datenaktualisierung

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

Einzelne JSON-Datenaktualisierung

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