【发布时间】: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