Задать вопрос
@Kobalts

Как правильно в go структуру из базы в шаблон html в gin?

Я пытаюсь вывести из базы данные в html:

{{ define "users/index.tmpl" }}
<html><h1>
    {{ range .values }} {{ .name }} {{ end }}
</h1>
</html>
{{ end }}


rows, err := conn.Queryx("SELECT id, name FROM users")

	for rows.Next() {

		if rows.StructScan(&user) != nil {
			log.Fatalln(err)
		}

	}

	defer rows.Close()

	ctx.HTML(http.StatusOK, "users/index.tmpl",  gin.H{"values": user})


type User struct {
	ID int `db:"id"`
	Name string `db:"name"`
}


получаю ошибку:

template: index.tmpl:4:28: executing "users/index.tmpl" at <.values>: range can't iterate over
  • Вопрос задан
  • 151 просмотр
Подписаться 1 Простой Комментировать
Решения вопроса 1
EvgenyMamonov
@EvgenyMamonov Куратор тега Go
Senior software developer, system architect
Итерировать нужно слайс, а не структуру, т.е. []Users.
Вот работающий пример.
rows, err := conn.Queryx("SELECT id, name FROM users")
if err != nil {
      log.Fatalln(err)
}
defer rows.Close()

users := []User{}

for rows.Next() {
    if rows.StructScan(&user) != nil {
      log.Fatalln(err)
    }
    users = append(users, user)
}

ctx.HTML(http.StatusOK, "users/index.tmpl",  gin.H{"values": users})
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы