在剧中!框架,使用 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)
)
whereSomeMethodThatReceivesAnIntAndReturnsABoolean
是一种在 int 上执行一些逻辑来验证它的方法。
但是,我希望能够someStringField
在验证时考虑 的价值someIntField
,有没有办法在游戏框架的形式中实现这一点?我知道我可以做类似的事情:
val userForm = Form(
mapping(
"someStringField" -> text,
"someIntField" -> number
)(User.apply)(User.unapply)
.verifying(x => SomeFunctionThatReceivesAnUserAndReturnsABoolean(x))
然后我会将可用的整个用户实例传递给验证函数。这种方法的问题是产生的错误将与整个表单相关联,而不是与someIntField
字段相关联。
有没有办法得到这两个东西,使用另一个字段验证一个字段并维护与我希望验证的特定字段相关的错误,而不是整个表单?