В игре! framework, используя scala, скажем, что у меня есть такая форма, как:
import play.api.data._
import play.api.data.Forms._
import play.api.data.validation.Constraints._
case class User(someStringField: String, someIntField: Int)
val userForm = Form(
mapping(
"someStringField" -> text,
"someIntField" -> number verifying(x => SomeMethodThatReceivesAnIntAndReturnsABoolean(x))
)(User.apply)(User.unapply)
)
где SomeMethodThatReceivesAnIntAndReturnsABoolean
- это метод, который выполняет некоторую логику для int, чтобы проверить его.
Тем не менее, я хотел бы иметь возможность рассмотреть значение someStringField
при проверке someIntField
, есть ли способ достичь этого в формах форм игры? Я знаю, что могу сделать что-то вроде:
val userForm = Form(
mapping(
"someStringField" -> text,
"someIntField" -> number
)(User.apply)(User.unapply)
.verifying(x => SomeFunctionThatReceivesAnUserAndReturnsABoolean(x))
а затем я получил бы весь пользовательский экземпляр, доступный для функции проверки. Проблема с этим подходом заключается в том, что полученная ошибка будет связана со всей формой, а не с полем someIntField
.
Есть ли способ получить обе вещи, проверить поле с использованием другого поля и сохранить ошибку, связанную с конкретным полем, которое я хочу проверить, а не всю форму?