7

在 Scala 表单助手中使用“nonEmptyText”约束时,我想自定义默认错误消息“此字段是必需的”。

这是我要自定义的示例:

  val form = Form(
    tuple("email" -> nonEmptyText, "password" -> nonEmptyText)
      verifying ("Invalid email or password.", result => result match {
        case (email, password) => {
          User.authenticate(email, password).isDefined
        }
      }))

最好在我的 conf/messages 文件中提供一个特定于字段的错误:

error.email.required=Enter your login email address
error.password.required=You must provide a password

但在最坏的情况下,我会对使用字段名称的通配符消息感到满意:

error.required=%s is required  
#would evaluate to "password is required", which I would then want to capitalize

我在一些 Play 1.x 文档中看到了这个 %s 表达式,但它似乎不再起作用了。

预先感谢您的帮助!

4

1 回答 1

8

尝试放弃使用 anonEmptyText并使用带有自定义验证的简单text字段:

tuple(
  "email" -> text.verifying("Enter your login email address", _.isDefined),
  "password" -> text.verifying("You must provide a password", _.isDefined)
)

然后,您可以更进一步,将子句String内部交换为对对象的调用:verifyingplay.api.i18n.Messages

tuple(
  "email" -> text.verifying(Messages("error.email.required"), _.isDefined),
  "password" -> text.verifying(Messages("error.password.required"), _.isDefined)
)

请注意,这是未经测试的代码,但它应该指出方向。

祝你好运

于 2012-10-17T23:35:09.860 回答