Предполагая, что у вас есть 3 таблицы / модели, Receipt
, Product
и LineItem
, вы можете добавить поле, которое ссылается на Product
в LineItem
модели следующим образом:
type Receipt struct {
ID uint `json:"id"`
TotalPrice float64 `json:"total"`
LineItems []LineItem `json:"lineItems"`
}
type Product struct {
ID uint `json:"id"`
Price float64 `json:"price"`
}
type LineItem struct {
ID uint `json:"id"`
ProductID uint `json:"productID"`
Product *Product `json:"product"`
}
Затем вы можете запросить Receipt
при заполнении поля LineItems
, а также поля Product
в каждом LineItem
с помощью функции Preload
Горм:
db.Preload("LineItems").Preload("LineItems.Product").Find(&receipt)
Thisкак у вас будет информация о ценах в каждом LineItem
доступном через Product
поле:
for _, li in receipt.LineItems {
fmt.Println(li.Product.Price)
}