教程
设置
登录后可跨设备保存划线和私人笔记登录
GORM 提供了 Set、Get、InstanceSet、InstanceGet 方法,允许用户将值传递给钩子或其他方法。
GORM 在某些功能中使用了这些方法,例如在迁移表时传递建表选项:
db.Set("gorm:table_options", "ENGINE=InnoDB").AutoMigrate(&User{})Set / Get
使用 Set / Get 将设置传递给钩子方法,例如:
type User struct {
gorm.Model
CreditCard CreditCard
}
func (u *User) BeforeCreate(tx *gorm.DB) error {
myValue, ok := tx.Get("my_value")
}
type CreditCard struct {
gorm.Model
}
func (card *CreditCard) BeforeCreate(tx *gorm.DB) error {
myValue, ok := tx.Get("my_value")
}
myValue := 123
db.Set("my_value", myValue).Create(&User{})InstanceSet / InstanceGet
使用 InstanceSet / InstanceGet 将设置传递给当前 *Statement 的钩子方法,例如:
type User struct {
gorm.Model
CreditCard CreditCard
}
func (u *User) BeforeCreate(tx *gorm.DB) error {
myValue, ok := tx.InstanceGet("my_value")
}
type CreditCard struct {
gorm.Model
}
func (card *CreditCard) BeforeCreate(tx *gorm.DB) error {
myValue, ok := tx.InstanceGet("my_value")
}
myValue := 123
db.InstanceSet("my_value", myValue).Create(&User{})评论
登录后参与评论
正在加载评论…
KnowForge