我有一个简单的表格:
val addForm = Form(
tuple("email" -> email, "password" -> nonEmptyText)
verifying("Invalid email or password", result => User.authenticate(result._1, result._2).isRight)
)
上面的一般错误消息是可以的。但是,如何自定义电子邮件和密码的特定错误消息。现在,如果是空密码,我就会遇到这种错误:
password error.required
如何自定义此错误消息?
更新: 即使这样也行不通,因为验证消息仍然与以下内容相同:
val addForm = Form(
tuple("email" -> email, "password" -> nonEmptyTextWithMessage("My message"))
verifying("Invalid email or password", result => User.authenticate(result._1, result._2).isRight)
)
def nonEmptyTextWithMessage(errorMessage: String): Mapping[String] = nonEmptyText.verifying(errorMessage, { _ => true })
答案 0 :(得分:1)
nonEmptyText
约束默认使用error.required
作为消息密钥。您可以在conf/messages
文件中更改它,但我想这不是您想要的。
如果您想重新使用预定义的Constraint
(请注意nonEmptyText
不是Constraint
而是Mapping
),您可以执行以下操作:
val addForm = Form(
tuple(
"email" -> email,
"password" -> text.verifying(Constraints.nonEmpty.copy(name = Some("My message"))())
).verifying("Invalid email or password", result => User.authenticate(result._1, result._2).isRight)
)
它看起来不太好,但我不知道任何辅助函数会达到同样的效果。
答案 1 :(得分:1)
我的同事建议,如果您使用的是scala模板,则可以按如下方式自定义错误消息
只需添加
'_error ->addForm("password").error.map(_.withMessage("Please provide password"))
像
@helper.inputPassword(addForm("password"), 'class->"col-md-12", '_label ->"Password",'style->"margin-bottom:20px", '_showConstraints->false, 'placeholder->"Enter Password", '_error ->addForm("password").error.map(_.withMessage("Please provide password")))