如何在 GORM 库中使用 Golang Sheriff 包?

How to use Golang Sheriff Package with GORM library?

我正在尝试将 Golang Sheriff 包与 GORM 库一起使用,但不知何故我得到了一个空响应。尝试了几种方法没有运气。任何帮助都会很棒。 TIA

//STRUCT
type Book struct {
    ID        uint `json:"id" gorm:"primary_key" groups:"not_detail,detail"`
    Realname      string `json:"real_name" groups:"not_detail,detail"`
    LanguageId int `json:"language_id" groups:"not_detail,detail"`
    Language   Language `json:"Language" groups:"detail"`
    CreatedAt time.Time `json:"created_at" groups:"not_detail,detail"`
    UpdatedAt time.Time `json:"updated_at" groups:"not_detail,detail"`
}
//CONTROLLER LOGIC
func FindBooks(c *gin.Context)  {
    db := c.MustGet("db").(*gorm.DB)
    var books []models.Book
    result := db.Find(&books)

    o := sheriff.Options{
        Groups: []string{"not_detail"},
    }

    d, err := sheriff.Marshal(&o, result)
    if err != nil {
        panic(err)
    }

    c.JSON(http.StatusOK, gin.H{"data":d})
}
result := db.Find(&books)

这里Find()return*DB表示db连接,fetch数据在books。所以你应该在 sheriff.Marshal

中发送 books
var books []models.Book
db.Find(&books)

o := sheriff.Options{
    Groups: []string{"not_detail"},
}

d, err := sheriff.Marshal(&o, books)