Передать внешний ключ в Golang джин - PullRequest
0 голосов
/ 30 мая 2020

Вот мой фрагмент кода, который я пытаюсь передать language_id вместе с вызовом создания книги Я получаю сообщение об ошибке

func Create(c *gin.Context) {
    dbb := c.MustGet("db").(*gorm.DB)
    book := Models.BookModel{
        Title:  c.PostForm("title"),
        Author: c.PostForm("author"),
        LanguageID: c.PostForm("language_id"),
    }

    dbb.Save(&book)
    c.JSON(http.StatusCreated, gin.H{"status": http.StatusCreated, "message": "Book created successfully!", "bookId": book.ID})
}

ошибка Cannot use 'c.PostForm("language_id")' (type string) as type int любая помощь, которая была бы большой спасибо !

1 Ответ

1 голос
/ 30 мая 2020

Проблема в том, что LanguageID является типом int, и вы хотите передать ему строковое значение, вы должны проанализировать его на int, например:

func Create(c *gin.Context) {
dbb := c.MustGet("db").(*gorm.DB)

languageID, err := strconv.Atoi(c.PostForm("language_id"))
 if err != nil {
    fmt.Println(err)
    return
}

book := Models.BookModel{
    Title:  c.PostForm("title"),
    Author: c.PostForm("author"),
    LanguageID: languageID,
}

dbb.Save(&book)
c.JSON(http.StatusCreated, gin.H{"status": http.StatusCreated, "message": "Book created successfully!", "bookId": book.ID})
}
...