【发布时间】:2016-11-08 07:03:36
【问题描述】:
我的模型如下:
case class User(uid: Option[Int], email: String, password: String, created_at: Timestamp, updated_at: Timestamp)
case class UserProfile(firstname: String, lastname: String, gender: Int, user_id: Long)
我定义了表单绑定如下:
val date = new Date()
val currentTimestamp= new Timestamp(date.getTime());
val registerForm = Form(
tuple(
"user" -> mapping(
"uid" -> optional(number),
"email" -> email,
"password" -> nonEmptyText,
"created_at" -> ignored(currentTimestamp),
"updated_at" -> ignored(currentTimestamp)
) (User.apply)(User.unapply),
"profile" -> mapping(
"firstname"->nonEmptyText,
"lastname"->nonEmptyText,
"gender" -> ignored(0),
"user_id" -> ignored(0L)
)(UserProfile.apply)(UserProfile.unapply))
)
现在,我想在使用 slick 将密码保存/插入到 db 之前使用散列存储密码。 我可以尝试通过创建一个新的用户对象来做到这一点,但这听起来不像是有效的方法。
还有其他方法吗?
提前致谢
------------------------------------------ 编辑 1 --- -------------------------------------------------- ----- 这是我使用 slick 的插入逻辑:
def insert(user: User): Future[Any] = {
println("coming inside insert of user dao")
println(user)
// insertUP(user)
db.run((Users returning Users.map(_.uid)) += user)
}
【问题讨论】:
-
在您进行插入/更新时调用一个方法来加密密码怎么样?你能粘贴你的插入逻辑吗?
-
@RobertUdah 尝试分配散列密码,但由于无法重新分配插入的用户对象值,因此无法解决问题。我已在我的问题中使用插入逻辑更新了我的编辑。
标签: scala playframework slick slick-3.0 playframework-2.5