Как сделать валидацию форм 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

Другие вопросы по тегам