@kireke

Как обновлять поля в бд которые не являются пустой строкой go gorm?

Подскажите пожалуйста, у меня есть функция для обновления значения тех полей в базе данных которые пришли с фронтенда и которые не являются пустой строкой
func EditProduct(c *gin.Context) {
	id := c.Params.ByName("id")
	var body ProductReq
	var product models.Product
	if err := c.ShouldBindJSON(&body); err != nil {
		log.Fatal(err.Error())
		return
	}
	database.DB.Where("id = ?", id).First(&product)
	if body.Title != "" {
		product.Title = body.Title
	}
	if body.Type != "" {
		product.Type = body.Type
	}
	if body.Img != "" {
		product.Img = body.Img
	}
	if body.Brand != "" {
		product.Brand = body.Brand
	}
	if body.Price != "" {
		product.Price = body.Price
	}
	database.DB.Save(&product)
}

есть ли какой-то метод у gorm чтобы обновить именно то что не является пустой строкой, а не писать такую конструкцию из if?
  • Вопрос задан
  • 115 просмотров
Решения вопроса 1
EvgenyMamonov
@EvgenyMamonov Куратор тега Go
Senior software developer, system architect
Мне такого не встречалось, но, в принципе, при желании, можно сделать при помощи рефлексии.
Но за рефлексию придётся заплатить производительностью :)
Если нужен пример реализации - дайте знать, сделаю.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
28 нояб. 2024, в 05:21
2000 руб./за проект
28 нояб. 2024, в 05:18
500 руб./за проект
28 нояб. 2024, в 03:51
3500 руб./за проект