在玩!框架,使用階,說我有一個形式,例如如下:玩!框架2.0:在使用其他字段的表單中驗證字段
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一些邏輯來驗證它的方法。
但是,我想能夠在驗證someIntField
時考慮someStringField
的值,有沒有辦法在遊戲框架的表單中實現這一點?我知道我可以這樣做:
val userForm = Form(
mapping(
"someStringField" -> text,
"someIntField" -> number
)(User.apply)(User.unapply)
.verifying(x => SomeFunctionThatReceivesAnUserAndReturnsABoolean(x))
然後我將整個用戶實例傳遞給驗證函數。該方法的問題在於所產生的錯誤將與整個表單相關聯,而不是與someIntField
字段關聯。
有沒有辦法讓兩個東西,使用另一個字段驗證字段,並保持與我想驗證的特定字段相關的錯誤,而不是整個表單?
這很奇怪。我認爲,當另一個字段不爲空時需要某個字段是常見的事情,而不是複雜的邏輯。所以很奇怪,之前沒有人碰到過這個,特別是這個遊戲!框架創建者自己。 –