¡En la obra! marco, utilizando Scala, decir que tengo una forma tal como sigue:Jugar! framework 2.0: Validar el campo en formularios usando otros campos
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)
)
donde SomeMethodThatReceivesAnIntAndReturnsABoolean
es un método que realiza alguna lógica en la int para validarlo.
Sin embargo, me gustaría poder considerar el valor de someStringField
al validar someIntField
, ¿hay alguna forma de lograr esto en los formularios de frameworks de juego? Yo sé que puedo hacer algo como:
val userForm = Form(
mapping(
"someStringField" -> text,
"someIntField" -> number
)(User.apply)(User.unapply)
.verifying(x => SomeFunctionThatReceivesAnUserAndReturnsABoolean(x))
y luego me gustaría tener toda la instancia de usuario disponible pasa a la función de validación. El problema con ese enfoque es que el error resultante se asociaría con el formulario completo en lugar de asociarse con el campo someIntField
.
¿Hay alguna manera de obtener ambas cosas, validar un campo usando otro campo y mantener el error asociado al campo específico que deseo validar, en lugar de todo el formulario?
Eso es extraño. Pensé que cosas tales como requerir cierto campo cuando otro campo no estaba vacío era algo común, y no se consideraba una lógica compleja. Por lo tanto, es extraño que nadie haya tropezado con esto antes, ¡especialmente con la obra! creadores del marco. –