【发布时间】:2015-02-19 11:26:04
【问题描述】:
我的表格如下:
case class PasswordData(currentPassword: String, newPassword: String, verifyPassword: String)
val passwordForm = Form(
mapping(
)(PasswordData.apply)(PasswordData.unapply) verifying("Passwords do not match", fields => fields match {
case data => (data.newPassword == data.verifyPassword)
})
)
我的控制器操作遵循通常的模式:
passwordForm.bindFromRequest.fold(
error => {},
form => {}
)
我现在遇到的问题是我需要验证输入的“currentPassword”是否与用户对象上的相同。
userDao.getById(userId).password == form.currentPassword
但我不能这样做,因为我不确定如何将他的 userId 传递给我的表单定义,因为它是动态的。
即我不能这样做:
"currentPassword" -> nonEmptyText.verifying(....) // userId not in scope
更新
我也在尝试显示这些错误(它们当前不显示错误,我只看到 ul 标签)。
@if(form.hasGlobalErrors) {
<ul>
@form.errors.foreach { error =>
<li>@error.message</li>
}
</ul>
}
【问题讨论】:
-
@m-z 我想他说的是
password和re-password... -
是的...他说...不知怎的错过了。
-
嗯... user_id 应该以某种方式提供...无论是表单中的隐藏文件...还是在用户会话中。
-
@m-z 这不是纯文本,我试图简化场景,因为我如何匹配密码并不重要。我的会话对象中有 userId,但我无法将其传递到表单中,因为那是一个 val
标签: scala playframework