Medan struktur tidak sah ditemui semasa penghijrahan automatik

WBOY
Lepaskan: 2024-02-12 17:30:06
ke hadapan
885 orang telah melayarinya

Medan struktur tidak sah ditemui semasa penghijrahan automatik

Kandungan soalan

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
Salin selepas log masuk

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"`
}
Salin selepas log masuk

Penyelesaian

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`))
Salin selepas log masuk

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`))
Salin selepas log masuk

Tidak pasti tentang use case, tetapi saya rasa dogdata 可以简化为,完全删除 model 结构,因为它与 gorm.model sama

type DogData struct {
    gorm.Model
    Name         string         `json:"name"`
    ...
}
Salin selepas log masuk

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!

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!