Lorsque j'essaie de migrer automatiquement les tables en fonction de ma structure, j'obtiens cette erreur, je ne sais pas pourquoi j'obtiens cette erreur
failed to parse value &models.model{id:0x0, createdat:time.date(1, time.january, 1, 0, 0, 0, 0, time.utc), updatedat:time.date(1, time.january, 1, 0, 0, 0, 0, time.utc), deletedat:, dogdata:[]models.dogdata(nil)}, got error invalid field found for struct github.com/dog-page/models.model's field dogdata: define a valid foreign key for relations or implement the valuer/scanner interface
Je suis nouveau dans le langage golang et gorm, surtout lorsqu'il s'agit de créer des structures pour les données brutes json, voici mon intention d'utiliser la structure de gorm :
type Model struct { ID uint `gorm:"primarykey:id" json:"id:_id"` CreatedAt time.Time `gorm:"column:created_at" json:"created_at"` UpdatedAt time.Time `gorm:"column:updated_at" json:"updated_at"` DeletedAt *time.Time `gorm:"column:deleted_at" json:"deleted_at"` DogData []DogData } type DogData struct { DogDataID uint Name string `json:"name"` Life_Span string `json:"life_span"` Temperaments string `json:"temperament"` Weight datatypes.JSON `json:"weight"` Height datatypes.JSON `json:"height"` Image datatypes.JSON `json:"image"` } type Weight struct { Imperial string `json:"imperial"` Metric string `json:"metric"` } type Height struct { Imperial string `json:"imperial"` Metric string `json:"metric"` } type Image struct { URL string `json:"url"` }
Champs dogdata du modèle : définir des clés étrangères valides pour les relations
Le modèle a une relation un-à-plusieurs avec dogdata, et gorm ne peut pas reconnaître les clés étrangères.
Vous devez spécifier la colonne dans dogdata
中存储 model.id
(gorm recherche modelid par défaut),
type model struct { id uint `gorm:"primarykey:id" json:"id:_id"` ... dogdata []dogdata } type dogdata struct { modelid uint dogdataid uint ... } //create table `dog_data` (`model_id` integer,`dog_data_id` integer,`name` text,`life_span` text,`temperaments` text,constraint `fk_models_dog_data` foreign key (`model_id`) references `models`(`id`))
Ou si vous souhaitez utiliser une autre colonne au lieu de spécifier la colonne à l'aide de la balise Foreignkey
type model struct { id uint `gorm:"primarykey:id" json:"id:_id"` ... dogdata []dogdata `gorm:"foreignkey:dogdataid"` } type dogdata struct { dogdataid uint ... } //create table `dog_data` (`model_id` integer,`dog_data_id` integer,`name` text,`life_span` text,`temperaments` text,constraint `fk_models_dog_data` foreign key (`dog_data_id`) references `models`(`id`))
Je ne suis pas sûr du cas d'utilisation, mais je pense dogdata
可以简化为,完全删除 model
结构,因为它与 gorm.model
pareil
type DogData struct { gorm.Model Name string `json:"name"` ... }
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!