【问题标题】:how to do scala play forms validation for a field with different errors如何对具有不同错误的字段进行scala play表单验证
【发布时间】:2015-12-21 15:32:35
【问题描述】:

我正在尝试为我们的表单添加一些验证字段。这是下面的第一个.verifying。目前,即使它未能通过新的验证,它也会检查 .verifying 的其余部分并返回几条错误消息。 如果该字段未通过我的新验证,我希望它不进行所有其他验证并返回。所以基本上,如果我的字段与临时字段的正则表达式匹配,我希望它返回错误消息而不继续其余的验证。

val form = Form(
mapping(
  "my_field" -> text
    .verifying(Messages("error.field.temporary"), x => x.matches(TEMP_FIELD))
    .verifying(Messages("error.mandatory", Messages("field")), _.length > 0)
    .verifying(Messages("error.field.invalid"), x => x.length == 0 || MyField.isValid(x.toUpperCase()))
    .verifying(Messages("error.field.invalid"), x => !MyField.isValid(x.toUpperCase()) || x.takeRight(1).toUpperCase().matches(FIELD_SUFFIX_REGEX))))
(MemberDetails.apply)(MemberDetails.unapply))

任何帮助表示赞赏。

【问题讨论】:

  • 执行额外验证有什么缺点? MyField.isValid 方法是否会产生大量成本?
  • 不,但是当您应该只收到一条时,您会收到多条错误消息。

标签: scala validation playframework playframework-2.4


【解决方案1】:

我已经通过使用约束解决了这个问题。在这里可以找到很好的信息:https://www.playframework.com/documentation/2.4.x/ScalaCustomValidations

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-08
    • 2019-05-26
    • 2016-02-08
    • 1970-01-01
    • 2013-05-29
    • 2011-03-10
    • 1970-01-01
    相关资源
    最近更新 更多