Как сделать валидацию форм scala для поля с разными ошибками
Я пытаюсь добавить проверку в нашу форму для поля. Это первая проверка ниже. В настоящий момент, даже если он не проходит новую проверку, он проверяет оставшуюся часть.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))
Любая помощь приветствуется.
1 ответ
Я решил это с помощью ограничения. Хорошая информация доступна здесь: https://www.playframework.com/documentation/2.4.x/ScalaCustomValidations