亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何存儲來自 DTO Gorm 的數據

如何存儲來自 DTO Gorm 的數據

Go
撒科打諢 2023-02-06 14:45:47
我正在使用 golang 纖維和 GORM。我正在嘗試存儲來自 DTO 的數據。例如,我創建了一個 post 實體和 post dto,如下所示。type User struct {    gorm.Model    Name string    Address string    Phone string}這是我的 DTOtype PostDto struct {    Name string `json:"name"`    Address string `json:"address"`    Phone string `json:"phone"`}我正在嘗試存儲如下數據var postDto models.PostDtoc.BodyParser(&postDto)err := database.DB.Model(models.User{}).Create(&postDto).Errorfmt.Println(err.Error())但我收到以下錯誤panic: reflect: call of reflect.Value.Field on string Value任何人都可以幫助解決這個問題嗎?
查看完整描述

2 回答

?
長風秋雁

TA貢獻1757條經驗 獲得超7個贊

我不知道你在做什么?這是go語言,不是java,為什么要定義兩個struct?


您可以使用標簽來完成您想要的。


type User struct {

    gorm.Model `json:"-" gorm:"-"`

    Name string `json:"name" gorm:"column:name"`

    Address string `json:"address" gorm:"column:address"`

    Phone string `json:"phone"  gorm:"column:phone"`

}



var user User

err := database.DB.Model(User{}).Create(&user).Error

fmt.Println(err.Error())


查看完整回答
反對 回復 2023-02-06
?
回首憶惘然

TA貢獻1847條經驗 獲得超11個贊

User 和 PostDto 結構不一樣,使用一個模型從另一個模型獲取和保存數據是錯誤的。


創建一個從 PostDto 轉換為 User 的函數,然后在 Create 中使用它的輸出


func (postDTo PostDTo) ToUser() *User {

    return &User{Name: postDTo.Name, Address: postDTo.Address, Phone: postDTo.Phone}

}

或者,因為User和PostDto結構非常相似,將 json ignore 添加到gorm.ModelinUser并使用它而不是PostDto


type User struct {

    gorm.Model `json:"-"`

    Name       string `json:"name"`

    Address    string `json:"address"`

    Phone      string `json:"phone"`

}



var postData models.User

c.BodyParser(&postData)


查看完整回答
反對 回復 2023-02-06
  • 2 回答
  • 0 關注
  • 124 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號