Play 2.0-scala中的自定义约束?
我想编写一个自定义约束,以便在表单中使用它进行验证。表单中的映射具有验证功能:Play 2.0-scala中的自定义约束?,scala,playframework,playframework-2.0,Scala,Playframework,Playframework 2.0,我想编写一个自定义约束,以便在表单中使用它进行验证。表单中的映射具有验证功能:验证(约束:约束[T]*):映射[T] 显然,我可以使用内置约束,例如“name”->text.verifying(nonEmpty) 现在我需要我自己的约束。约束案例类看起来像:case-class约束[-T](名称:Option[String],args:Seq[Any],f:(T)⇒ ValidationResult)使用可序列化扩展产品 但当我查看ValidationResult时,我只看到一个空的特征,请看这
验证(约束:约束[T]*):映射[T]
显然,我可以使用内置约束,例如“name”->text.verifying(nonEmpty)
现在我需要我自己的约束。约束案例类看起来像:case-class约束[-T](名称:Option[String],args:Seq[Any],f:(T)⇒ ValidationResult)使用可序列化扩展产品
但当我查看ValidationResult时,我只看到一个空的特征,请看这里-。那么我如何定义自己的约束呢?您的问题是不知道如何创建类型为t=>ValidationResult
的函数吗?如果单击“已知子类”,它有两个:Invalid
(类)和Valid
(单例)
例如:
import play.api.data.validation._
val f = (_: Int) match {
case 0 | 1 | 2 => Valid
case _ => Invalid("Number over 2")
}
val c = Constraint("my constraint")(f)
答对了,这正是我的问题