Analyse dans des structures imbriquées avec sqlx
Les structures imbriquées présentent des défis lors de l'utilisation de sqlx. Cependant, la documentation fournit une solution grâce à l'utilisation de structures intégrées.
Structs intégrés
Sqlx prend en charge les structures intégrées, vous permettant d'attribuer des valeurs aux champs à l'aide des règles de priorité de Go. pour les attributs et méthodes intégrés.
Code Exemple
Considérez le code suivant, où Address n'est pas une structure intégrée :
type Customer struct { Id int `json:"id" db:"id"` Name string `json:"name" db:"name"` Address Address `json:"adress"` } type Address struct { Street string `json:"street" db:"street"` City string `json:"city" db:"city"` }
Ce code entraînera une erreur lors de la tentative d'analyse dans une structure Customer car l'Adresse Le champ n'est pas intégré et n'a pas sa propre balise db.
Pour résoudre ce problème, intégrez l'adresse dans Client :
type Customer struct { Id int `json:"id" db:"id"` Name string `json:"name" db:"name"` Address }
En intégrant l'adresse, ses champs (y compris les balises) sont promus en client, permettant à sqlx de les remplir à partir du résultat de la requête.
Sortie JSON
L'intégration de l'adresse aplatira la sortie JSON, comme indiqué ci-dessous :
{ "id": 1, "name": "foo", "street": "bar", "city": "baz" }
Pour l'adresse ceci, vous pouvez remapper la structure DB à votre type d'origine ou analyser le résultat de la requête dans une carte.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!
if($res){
return json_encode(array('code'=>1,'msg'=>'成功'));
}else{
return json_encode(array('code'=>0,'msg'=>'失败'));
}
}
public function
}