Gorm 關係中的外鍵錯誤
嘗試使用Gorm 從資料庫擷取模型時,出現錯誤訊息:「無效欄位找到struct models .ConfigurationDescription 的欄位Location,需要為關係定義有效的外鍵,或需要實作Valuer/Scanner介面。
給定的資料模型定義了 ConfigurationDescription 和 LocationDescription 之間的「屬於」關係。但是,ConfigurationDescription 結構中的外鍵標記和引用標記似乎顛倒了。
在 Belongs-To 關係模式中,foreignKey 標記應命名連接到外部實體的模型本地鍵字段,而引用標籤應命名外部實體的主鍵或唯一鍵。
要解決此問題,ConfigurationDescription 結構中的標籤應交換為如下:
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"` }
修正這些標籤後,Gorm 應該可以正確識別兩個模型之間的關係並成功檢索數據,而不會遇到外鍵錯誤。
以上是儘管模型關係看似正確,為什麼 Gorm 會拋出外鍵錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!