Load roles and their members in GORM?

  Kiến thức lập trình

I’m trying to load a list of roles and their members from a RestAPI in GO.

Handler:

func RolesHandler(w http.ResponseWriter, r *http.Request) {
    var roles []Role

    var queryError = database.Model(&Role{}).
        Preload("Players").
        Find(&roles).
        Error

    if queryError != nil {
        log.Fatalln(queryError)
        return
    }

    w.Header().Set("Content-Type", "application/json")
    json.NewEncoder(w).Encode(roles)
}

I get

[2024-04-25 07:57:06]  can't preload field Players for main.Role 
2024/04/25 07:57:06 can't preload field Players for main.Role
exit status 1
exit 1

Here are my structs:

type PlayerRole struct {
    ID       int64  `json:"id" gorm:"primary_key"`
    PlayerId int64  `json:"player_id"`
    Player   Player `json:"player"`
    RoleId   int64  `json:"role_id"`
    Role     Role   `json:"data" gorm:"many2many:player_role;"`
}

type Role struct {
    ID      int64    `json:"id" gorm:"primary_key"`
    Name    string   `json:"name"`
    Players []Player `json:"players"`
}

type Tabler interface {
    TableName() string
}

func (PlayerRole) TableName() string {
    return "player_role"
}

LEAVE A COMMENT