Play for Scala - 映射时不止一个验证标准?

Play for Scala - more than one .verifying criteria when mapping?

我是 Scala 和 Play 的新手,目前正在学习“Play for Scala”的第 2 章,并对 'Products' 应用程序有疑问。

该应用程序的条形码生成器需要 11 或 12 个字符的 longNumber 值,但没有适当的验证来检查 longNumber 是否具有正确的字符数。这意味着条形码图像并不总是正确生成。

本书提供的当前验证是:

private val productForm: Form[Product] = Form(
mapping(
  "ean" -> longNumber.verifying(
    "validation.ean.duplicate", Product.findByEan(_).isEmpty),
  "name" -> nonEmptyText,
  "description" -> nonEmptyText
)(Product.apply)(Product.unapply)
)

有什么方法可以将另一组 'verifying' 条件添加到 "ean" 值?理想情况下检查 "ean" 是否足够长,如果不够则显示 "validation.ean.length" 消息。

非常感谢

Mapping.verifying returns 一个新的 Mapping,所以你可以再次调用 verifying 就可以了。您可以通过这种方式链接任意多个。