首页 文章

使用gorm模型的嵌套结构

提问于
浏览
0

我有一个名为User的结构:

type User struct {
    Email string
    Name string
}

和结构名为UserDALModel:

type UserDALModel struct {
    gorm.Model
    models.User
}

gorm模型看起来像这样:

type Model struct {
    ID        uint `gorm:"primary_key"`
    CreatedAt time.Time
    UpdatedAt time.Time
    DeletedAt *time.Time `sql:"index"`
}

这可以使UserDALModel与gorm模型和用户模型嵌套,因此输出将是:

{
    ID
    CreatedAt
    UpdatedAt
    DeletedAt
    Email 
    Name
}

现在输出是:

{
    Model: {
        ID
        CreatedAt
        UpdatedAt
        DeletedAt
    }
    User: {
        Name
        Email
    }
}

2 回答

  • 0

    根据gorm中的this test,我认为你需要在结构中添加一个 embedded 标签 .

    type UserDALModel struct {
        gorm.Model `gorm:"embedded"`
        models.User `gorm:"embedded"`
    }
    

    如果需要 embedded_prefix ,也可以指定前缀 .

  • 0

    我找到了答案:

    type UserModel struct {
        Email string
        Name string
    }
    
    type UserDALModel struct {
        gorm.Model
        *UserModal
    }
    
    ------------------------------
    
    user := UserModel{"name", "email@email.com"}
    userDALModel := UserDALModel{}
    userDal.UserModal = &user
    

相关问题