Fremdschlüsselfehler in der Gorm-Beziehung
Beim Versuch, ein Modell aus einer Datenbank mit Gorm abzurufen, erscheint die Fehlermeldung: „Ungültiges Feld.“ für den Feldstandort von struct models.ConfigurationDescription gefunden, muss ein gültiger Fremdschlüssel für Beziehungen definiert werden oder es muss die Valuer/Scanner-Schnittstelle implementiert werden.“ Dieser Fehler tritt auf, obwohl die Datenmodelle scheinbar den Gorm-Dokumentationsrichtlinien folgen.
Die angegebenen Datenmodelle definieren eine Belongs-To-Beziehung zwischen ConfigurationDescription und LocationDescription. Allerdings scheinen das Foreign Key-Tag und das References-Tag in der ConfigurationDescription-Struktur vertauscht zu sein.
In einem Belongs-To-Beziehungsmuster sollte das ForeignKey-Tag das modelllokale Schlüsselfeld benennen, das mit der Fremdentität verknüpft wird , während das Referenz-Tag den primären oder eindeutigen Schlüssel der fremden Entität benennen sollte.
Um das Problem zu beheben, sollten die Tags in der ConfigurationDescription-Struktur als ausgetauscht werden folgt:
type ConfigurationDescription struct { ID int `json:"configurationID"` Name string `json:"name"` IsActive bool `json:"isActive"` LocationID int `json:"-"` Location LocationDescription `json:"location,omitempty" gorm:"foreignKey:ID;references:LocationID"` }
Wenn diese Tags korrigiert sind, sollte Gorm die Beziehung zwischen den beiden Modellen richtig erkennen und die Daten erfolgreich abrufen, ohne dass der Fremdschlüsselfehler auftritt.
Das obige ist der detaillierte Inhalt vonWarum gibt Gorm trotz scheinbar korrekter Modellbeziehungen einen Fremdschlüsselfehler aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!