Rumah >pembangunan bahagian belakang >Golang >Medan struktur tidak sah ditemui semasa penghijrahan automatik
Apabila saya cuba memindahkan jadual secara automatik berdasarkan struktur saya, saya mendapat ralat ini, saya tidak tahu mengapa saya mendapat ralat ini
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
Saya baru dalam bahasa golang dan gorm, terutamanya apabila ia datang untuk mencipta struktur untuk data json mentah, inilah niat saya untuk menggunakan struktur 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"` }
Data medan model: Tentukan kunci asing yang sah untuk perhubungan
Model ini mempunyai hubungan satu-ke-banyak dengan dogdata, dan gorm tidak dapat mengecam kunci asing.
Anda perlu menentukan lajur dalam dogdata
中存储 model.id
(gorm mencari model secara lalai),
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`))
Atau jika anda ingin menggunakan lajur lain dan bukannya menentukan lajur menggunakan teg 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`))
Tidak pasti tentang use case, tetapi saya rasa dogdata
可以简化为,完全删除 model
结构,因为它与 gorm.model
sama
type DogData struct { gorm.Model Name string `json:"name"` ... }
Atas ialah kandungan terperinci Medan struktur tidak sah ditemui semasa penghijrahan automatik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!