Простой поиск Gorm с внешним ключом не работает

#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, необходимо определить внешний ключ для отношений или необходимо реализовать интерфейс оценщика / сканера