gpt4 book ai didi

scala - Play 2.0-scala 中的自定义约束?

转载 作者:行者123 更新时间:2023-12-02 22:32:25 24 4
gpt4 key购买 nike

我想编写一个自定义约束以在我的表单中使用它进行验证。 Form 中的映射有一个验证函数:verifying (constraints: Constraint[T]*): Mapping[T]

我显然可以使用内置约束,例如“名称”-> text.verifying(nonEmpty)

不过现在我需要自己的约束。约束案例类如下所示:case class Constraint [-T] (name: Option[String], args: Seq[Any], f: (T) ⇒ ValidationResult) extends Product with Serializable

但是当我查看 ValidationResult 时,我只看到一个空特征,请参见此处 - http://www.playframework.org/documentation/api/2.0.2/scala/index.html#play.api.data.validation.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)

关于scala - Play 2.0-scala 中的自定义约束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11999202/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com