Поэтому я использую Go Lang 1.10.3 с платформой Echo с Gorm и Postgres в качестве базы данных.
У меня есть три таблицы / структуры, Profile, Addresses и Profile_addresses
Структура выглядит следующим образом:
Профиль
type Profile struct {
gorm.Model
Company string `gorm:"size:255" json:"company"`
AddedDate time.Time `gorm:"type:date" json:"date_added"`
ProfileAddresses []ProfileAddress `gorm:"foreignkey:profile_fk" json:"address_id"`
}
Адрес
type Address struct {
gorm.Model
AddressLine1 string `gorm:"size:255" json:"line1"`
AddressLine2 string `gorm:"size:255" json:"line2"`
AddressLine3 string `gorm:"size:255" json:"line3"`
City string `gorm:"size:200" json:"city"`
Country string `gorm:"size:255" json:"country"`
Postcode string `gorm:"size:12" json:"postcode"`
ProfileAddresses []ProfileAddress `gorm:"foreignkey:address_fk"`
}
И Адрес профиля
type ProfileAddress struct {
gorm.Model
Archive bool `json:"archive"`
Profile Profile
Address Address
AddressFK int`gorm:"ForeignKey:id"`
ProfileFK int`gorm:"ForeignKey:id"`
}
Все эти таблицы сделаны хорошо, ноСейчас я пытаюсь сохранить идентификатор адреса в таблице адресов профиля при создании нового профиля.Отправка данных в /profile/add
(с почтальоном), включая следующие данные
{
"company": "testing-000001",
"date_added": "3051-11-09T00:00:00+00:00",
"address_id": 3
}
Теперь я могу сохранить новый профиль и новый адрес, но не сохранить эти данные.Я только что добавил опцию json:"address_id"`
в конец Profile struct
, но это не сработало.
Я настроил это так, поскольку у одного профиля может быть много адресов, поэтому необходимосвязанная таблица со всеми адресными идентификаторами.Я уверен, что смогу сделать это в два этапа, например, сохранить профиль, затем сохранить адреса, которые я хочу добавить в этот профиль, но я бы хотел, чтобы это работало.Мне также не нужно создавать новый адрес, они уже были бы добавлены в систему.
Так что же я делаю не так?
Любая помощь приветствуется.
Спасибо,