回调

pop提供了一种在数据库操作之前和之后执行代码的方法。这是通过为模型定义特定的方法来实现的。

例如,在用户表插入数据之前,要加密用户密码,可以这么做:

type User struct {
  ID       uuid.UUID
  Email    string
  Password string
}

func (u *User) BeforeCreate(tx *pop.Connection) error {
  hash, err := bcrypt.GenerateFromPassword([]byte(u.Password), bcrypt.DefaultCost)
  if err != nil {
    return errors.WithStack(err)
  }

  u.Password = string(hash)

  return nil
}

在上面的示例中,当调用save方法时,将在写入数据库之前调用beforecreate方法。

可用的回调包括:

本文章首发在 LearnKu.com 网站上。
上一篇 下一篇
superwen
讨论数量: 0
发起讨论 只看当前版本


暂无话题~