【发布时间】:2021-05-28 18:50:42
【问题描述】:
我在将 Historique 和 Medicament 之间的多对多关联联系起来时遇到问题。 (历史就是一个病人看病的所有时间,治疗就是他接受的治疗,药物就是开的药)
我这里有这段代码,但我找不到将它们与所有这些外键链接的方法!
type Traitement struct {
Histo_id int `gorm:"primary_key"`
Histo_patient_id int `gorm:"primary_key"`
Histo_medecin_id int `gorm:"primary_key"`
Medicament_id int `gorm:"primary_key"`
Debut_traitement string
Fin_traitement string
}
type Medicament struct {
ID int `gorm:"primary_key"`
Nom string `gorm:"column:medicament_nom"`
Description string `gorm:"column:medicament_desc"`
Historique []Historique `gorm:"many2many:tt_traitement"`
}
type Historique struct {
Fk_patient_id string `json:"-" gorm:"primary_key"`
Date_consultation string
Fk_maladie_id uint `json:"-" gorm:"primary_key"`
Fk_compte_medecin_id uint
Maladie Maladie `gorm:"ForeignKey:ID;AssociationForeignKey:Fk_maladie_id"`
Medicament []Medicament `gorm:"many2many:tt_traitement"`
}
func GetPatientWithDiseases(id uint) (*Patient, error) {
patient := &Patient{}
err := GetDB().Preload("Historique.Maladie").Preload("Historique.Traitement.Medicament").Find(&patient, id).Error
if err != nil {
return nil, err
}
return patient, nil
}
提前感谢您的帮助!
【问题讨论】:
标签: go many-to-many go-gorm