#go #go-gorm
#Вперед #go-gorm
Вопрос:
У меня проблема с выбором внешнего ключа с помощью gorm в базе данных MySQL.
Я получил файл dto.go:
package dto
import (
"time"
)
type TaskResponse struct {
ID uint `json:"id"`
Title string `json:"title"`
Description string `json:"description"`
Status model.Status
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
Простой объект ответа, но у задачи есть параметр состояния.
Я получил файл task.go и status.go:
package model
// Status struct
type Status struct {
ID uint
Name string
}
// Task struct
type Task struct {
gorm.Model
ID uint
Title string
Description string
Status Status `gorm:"ForeignKey:ID"`
CreatedAt time.Time
UpdatedAt time.Time
DeletedAt time.Time
}
Запрос:
database.DB.Model(amp;model.Task{}).First(dest, conds...)
Проблема в том, что я хотел бы добавить в TaskResponse результат запроса, но все поля задачи извлекаются, но объект состояния всегда пуст… (Я пробую много вещей, подобных фактическим gorm:"ForeignKey:ID"
)
Кто-нибудь знает, в чем моя проблема?
Комментарии:
1. Вы уже пытались использовать
gorm:"ForeignKey:StatusID"
вместоgorm:"ForeignKey:ID"
?2. @J.Antonio Спасибо за ваш ответ, я уже пробовал и получил это сообщение: [ошибка] найдено недопустимое поле для примера структуры-статус поля todolist / dto.TaskResponse, необходимо определить внешний ключ для отношений или необходимо реализовать интерфейс оценщика / сканера