Struct:
type User struct {
DoubanId string `gorm:"type:varchar(20); primaryKey"`
CreatedAt time.Time
UpdatedAt time.Time
DeletedAt gorm.DeletedAt `gorm:"index"`
Subjects []Subject `gorm:"many2many:user_subjects"`
}
type Subject struct {
SubjectId string `gorm:"type:varchar(20); primaryKey"`
CreatedAt time.Time
UpdatedAt time.Time
DeletedAt gorm.DeletedAt `gorm:"index"`
SubjectName string
SubjectPhoto string
}
Code:
doubanId := c.Query("doubanId")
startIndexText := c.DefaultQuery("startIndex", "0")
var user model.User
startIndex, _ := strconv.ParseInt(startIndexText, 10, 32)
utils.GormDb.Model(&model.User{DoubanId: doubanId}).Preload("Subjects", func(db *gorm.DB) *gorm.DB {
return db.Limit(15).Offset(int(startIndex))
}).First(&user)