GORM中Hook(對象生命周期)應用:使用UUID作為數據庫主鍵
定義數據庫模型結構體
type Article struct {
ID uuid.UUID `json:"id" gorm:"type:char(36);primary_key"`
}
在創建數據庫結構體實例是調用鈎子:BeforeCreate
//鈎子:在文章被創建之前,通過UUID生成文章的ID
func (u *Article) BeforeCreate(tx *gorm.DB) (err error) {
u.ID = uuid.NewV4()
return
}
調用:
// 創建article
//var createuuid=uuid.NewV4()
article := model.Article{
//ID: createuuid,
UserId: user.(model.User).ID, //用戶的ID
CategoryId: requestArticle.CategoryId, //傳入的文章分類ID
Title: requestArticle.Title,//傳入的文章標題
HeadImg: requestArticle.HeadImg,//傳入文章的圖片
Content: requestArticle.Content,//傳入文章的內容
}
// 插入數據
if err := common.DB.Create(&article).Error; err != nil {
c.JSON(400, gin.H{
"data": gin.H{
"err":err,
},
"meta": gin.H{
"msg": "數據寫入數據庫失敗",
"code": 400,
}})
return
}