为 Play (Scala) 框架中的表单创建一般(非特定字段)错误消息

Create a general (not field specific) error message for the form in Play (Scala) framework

我可以像这样创建自定义字段特定的错误消息:

Form(form.mapping, Map(), Seq(FormError("postcode", "Not recognised")), None)))

如何为表单而不是特定字段创建自定义一般错误消息?类似于:

Form(form.mapping, Map(), Seq(FormError(None, "Could not send")), None)))

您正在寻找一个全局错误,它只是一个没有键的 FormError(一个空的 String,因为它不是 Option)。 Form 有一个名为 withGlobalError 的方法,您可以在其中传递错误消息和其他参数。在你的情况下,如果你有一些 Form:

val form: Form[?] = ???

form.withGlobalError("Could not send")

withGlobalError 只是调用 withError,这大致相当于您的第二个片段,尽管它最终在 Form 上执行 copy。您还可以看到 source.

在您的示例的上下文中,它看起来像这样:

Form(form.mapping, Map(), Seq(FormError("", "Could not send")), None)))