首页 > 解决方案 > 属于自己

问题描述

我正在尝试在同一张桌子上建立 belongsTo 关系。但我无法成功。我在 Internet 上没有找到任何易于理解的示例。

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 实现它?

标签: gobelongs-togo-gorm

解决方案


推荐阅读