Diagnostic et solution des erreurs de relation Gorm
Lors de l'accès à une base de données Gorm, vous pouvez rencontrer une erreur indiquant : "besoin de définir un nom étranger valide clé pour les relations ou il faut implémenter l'interface Valuer/Scanner." Ce problème survient lorsqu'il existe une incompatibilité dans les relations de clé étrangère entre les modèles de données et leurs tables de base de données correspondantes.
Dans votre cas, l'erreur se produit pour la relation entre ConfigurationDescription et LocationDescription. Le champ Location dans ConfigurationDescription semble être déclaré correctement, avec les attributs ForeignKey et References définis. Cependant, en y regardant de plus près, il devient clair que les balises sont inversées.
Pour un modèle de relation Belongs-To, l'attribut ForeignKey doit nommer le champ de clé locale du modèle qui rejoint l'entité étrangère, ainsi que les références. L'attribut doit nommer la clé primaire ou unique de l'entité étrangère. Dans ce cas, la clé étrangère doit être LocationID et les références doivent être ID.
Pour résoudre le problème, modifiez la structure ConfigurationDescription comme suit :
type ConfigurationDescription struct { ID int `json:"configurationID"` Name string `json:"name"` IsActive bool `json:"isActive"` LocationID int `json:"-" gorm:"foreignKey:LocationID"` Location LocationDescription `json:"location,omitempty" gorm:"references:ID"` }
Avec ces ajustements, la clé étrangère La relation clé entre ConfigurationDescription et LocationDescription doit être établie correctement, permettant à Gorm de charger les données comme prévu.
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!