Я хочу работать с таблицей many2many
, автоматически сгенерированной GORM db.AutoMigrate(&Document{}, &Folder{})
.
. В этом сценарии у папки есть документы, а у документов есть папки, пока это хорошо, но у ассоциации естьстатус (действительный, недействительный ...), поэтому мне нужно посмотреть на таблицу documents_folders
, чтобы узнать состояние.
База данных:
+-----------------------+
| Table |
+-----------------------+
| documents |
| documents_folders |
| folders |
+-----------------------+
Модели:
Материал
(идентификатор primary_key == UUID)
type Stuff struct {
ID uuid.UUID `gorm:"type:char(36);primary_key;" json:"id"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"update_at"`
DeletedAt *time.Time `sql:"index" json:"deleted_at"`
}
Папка
type Folder struct {
Stuff
Name string `json:"name" form:"name" gorm:"name;"`
Documents []*Document `json:"documents" gorm:"many2many:documents_folders;"`
}
Документ
type Document struct {
Stuff
Name string `json:"name" form:"name" gorm:"name;"`
Folders []*Folder `json:"folders" gorm:"many2many:documents_folders;"`
}
DocumentsFolders
Я создал эту модель для доступа к таблице, она генерируется автоматически, но мне нужно добавить столбец State
type DocumentsFolders struct {
DocumentID string `json:"document_id" sql:"type:char(36) REFERENCES documents(id)"`
Document *Document `json:"document"`
FolderID string `json:"folder_id" sql:"type:char(36) REFERENCES folders(id)"`
Folder *Folder `json:"folder"`
State string `json:"state" form:"state" gorm:"state;"`
}
Я не могу получить к ней доступ при предварительной загрузкеdocument
и folder
вроде:
folder := Folder{}
db.Preload("Documents").Where("id = ?", "myUUID").First(&folder)
Хотелось бы увидеть состояние ассоциации документов.
Спасибо за вашу помощь