Я пытаюсь установить отношение принадлежности к одной и той же таблице.Но я не могу добиться успеха.Я не нашел в интернете легко понятных примеров.
type Role struct {
gorm.Model
Name string
Description string
Inclusive bool
Controller *Role `gorm:"foreignkey:controller;association_foreignkey:id"`
SupervisedRoles []*Role `gorm:"foreignkey:Controller"`
Permissions []*Permission
}
func (r *Role) GetController() (*Role, error) {
controller := &Role{}
return controller, db.DB.Model(r).Related(controller).Error
}
func (r *Role) GetSupervisedRoles() ([]*Role, error) {
roles := []*Role{}
return roles, db.DB.Model(r).Related(roles).Error
}
В моей таблице поле «контроллер» представляет собой обнуляемый внешний ключ, который ссылается на еще одно вхождение моей таблицы «ролей».
Как мне реализовать это с помощью GORM?