Postingan lainnya
Tidak bisa menampilkan array of struct ke gin.h response
Permisi, saya mau bertanya, ketika mau menampilkan data dari proses query gorm, variable tersebut bisa muncul di browser.
Namun apabila diperlukan proses pengolahan terlebih dahulu dan ditampung didalam slice struct, data tidak bisa muncul.
Tapi, ketika saya cek menggunakan script
fmt.Println(details)
data bisa muncul di terminal..
Mungkin ada yang bisa bantu solusi untuk problem ini apa ya,, terima kasih
*Untuk scriptnya adalah sebagai berikut
package routes
import (
"fmt"
"github.com/gin-gonic/gin"
)
type detailInfo struct {
id uint
bookID uint
bookCode string
bookTitle string
bookCover string
fine int32
note string
}
//ReturnGet to show borrow data by book code
func ReturnGet(c *gin.Context) {
transCode := c.Param("code")
var trans models.Transaction
if config.DB.Preload("Details").Preload("Details.Book").Preload("Admin").Preload("Member").Find(&trans, "code = ?", transCode).RecordNotFound() {
c.JSON(404, gin.H{
"status": 404,
"message": "Borrow log not found",
})
c.Abort()
return
}
var details []detailInfo
for _, detailTrans := range trans.Details {
detailStruct := detailInfo{
id: detailTrans.ID,
bookID: detailTrans.BookID,
bookCode: detailTrans.Book.Code,
bookTitle: detailTrans.Book.Title,
bookCover: detailTrans.Book.Cover,
fine: detailTrans.Fine,
note: detailTrans.Note,
}
fmt.Println(detailStruct)
details = append(details, detailStruct)
}
fmt.Println(details)
c.JSON(200, gin.H{
"id": trans.ID,
"code": trans.Code,
"adminID": trans.AdminID,
"adminUsername": trans.Admin.Username,
"memberID": trans.MemberID,
"memberUsername": trans.Member.Username,
"borrowDate": trans.BorrowDate,
"returnDate": trans.ReturnDate,
"isReturned": trans.IsReturned,
"detail": details,
})
}
1 Jawaban:
Jawaban Terpilih
Ternyata structnya harus memakai capitalize, kalau hanya lowercase nggak bisa
<pre> type detailInfo struct { ID uint BookID uint BookCode string BookTitle string BookCover string Fine int32 Note string } </pre>
terima kasih