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)

答对了,这正是我的问题