GORM钩子-更新多行时无法获取ID



我有这样的更新代码:

db.Model(&models.DailyPlan{}).
Where("daily_plan_id IN ?", dailyPlanIds).
Updates(updateClause).Error

和钩子:

func (d *DailyPlan) AfterSave(tx *gorm.DB) (err error) {
// blah blah
return
}

但是当我运行上面的更新代码时,在我的钩子中,我无法获得ID (daily_plan_id)(只有updateClause中的字段有数据)。

如何获取我在dailyPlanIds中发送的ID

您可以基于这里使用Set/Get

您可以使用Where()查询记录,并在更新时将记录的指针传递给Model(),以便钩子可以触发并且您可以获得ID

// get plans
plans := []models.DailyPlan{}
db.Model(&models.DailyPlan{}).
Where("daily_plan_id IN ?", dailyPlanIds).
Find(&plans).Error
// update plans
db.Model(plans).
Updates(updateClause).Error

相关内容

  • 没有找到相关文章

最新更新