Méthode GoLang pour charger des objets imbriqués à l'aide de GORM
P粉448346289
P粉448346289 2024-03-27 13:20:01
0
2
479

Bonjour, disons que j'ai 3 structures au format suivant

type Employee struct {
  Id int
  Name string
  CompanyId int `gorm:"column:companyId"`
  Company Company `gorm:"foreignKey:CompanyId"`
}

type Company struct {
  Id int
  CompanyName string
  OwnerId `gorm:"column:owner"`
  Owner Owner `gorm:"foreignKey:OwnerId"`
}

type Owner struct {
  Id int
  Name string
  Age int
  Email string
}

func (E Employee) GetAllEmployees() ([]Employee, error) {
  Employees := []Employee
  db.Preload("Company").Find(&Employees)
}

// -- -- There response will be like

[
  {
    id: 1
    name: "codernadir"
    company: {
      id: 5
      company_name: "Company"
      owner: {
        id 0
        Name ""
        Age 0
        Email ""
      }
    }
  }
]

Ici, j'ai la valeur du propriétaire avec la valeur par défaut. L'exemple donné est utilisé pour décrire ce que je veux réaliser.

J'ai besoin d'un moyen de charger la structure du propriétaire et sa valeur lors du chargement des employés ?

Toutes suggestions seraient grandement appréciées et merci d'avance

P粉448346289
P粉448346289

répondre à tous(2)
P粉642920522

Vous pouvez utiliser la balise gorm:"embedded" :

type Employee struct {
  Id int
  Name string
  CompanyId int `gorm:"column:companyId"`
  Company Company `gorm:"embedded"`
}

type Company struct {
  Id int
  CompanyName string
  OwnerId `gorm:"column:owner"`
  Owner Owner `gorm:"embedded"`
}

type Owner struct {
  Id int
  Name string
  Age int
  Email string
}
P粉148782096

C'est la solution que j'ai trouvée pour charger des objets imbriqués à partir de structures intégrées

db.Preload("Company").Preload("Company.Owner").Find(&Employees)
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!