Ralat Kunci Asing dalam Hubungan Gorm
Semasa cuba mendapatkan semula model daripada pangkalan data menggunakan Gorm, mesej ralat timbul: "medan tidak sah ditemui untuk model struct. Lokasi medan ConfigurationDescription, perlu menentukan kunci asing yang sah untuk hubungan atau ia perlu melaksanakan antara muka Penilai/Pengimbas." Ralat ini berlaku walaupun model data nampaknya mengikut garis panduan dokumentasi Gorm.
Model data yang diberikan mentakrifkan hubungan Kepunyaan-Kepunyaan antara ConfigurationDescription dan LocationDescription. Walau bagaimanapun, teg kunci asing dan teg rujukan dalam struct ConfigurationDescription nampaknya diterbalikkan.
Dalam corak hubungan Kepunyaan-Kepada, teg foreignKey harus menamakan medan kunci tempatan model yang bercantum dengan entiti asing , manakala teg rujukan harus menamakan kunci utama atau unik entiti asing.
Untuk menyelesaikan isu, teg dalam ConfigurationDescription struct hendaklah ditukar seperti berikut:
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"` }
Dengan teg ini diperbetulkan, Gorm harus mengenali dengan betul perhubungan antara kedua-dua model dan mendapatkan semula data dengan jayanya tanpa menghadapi ralat kunci asing.
Atas ialah kandungan terperinci Mengapa Gorm Melemparkan Ralat Kunci Asing Walaupun Hubungan Model Nampak Betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!