为Scala播放-多个。映射时是否验证条件?

为Scala播放-多个。映射时是否验证条件?,scala,playframework,playframework-2.0,Scala,Playframework,Playframework 2.0,我对Scala和Play都是新手,目前正在阅读“”的第2章,并对“产品”应用程序有一个疑问 该应用程序的特点是条形码生成器需要具有11或12个字符的longNumber值,但没有验证来检查longNumber是否具有正确的字符数。这意味着条形码图像并不总是正确生成 本书提供的当前验证为: private val productForm: Form[Product] = Form( mapping( "ean" -> longNumber.verifying( "validati

我对Scala和Play都是新手,目前正在阅读“”的第2章,并对“产品”应用程序有一个疑问

该应用程序的特点是条形码生成器需要具有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)
)
有没有办法向“ean”值添加另一组“验证”标准?理想情况下,检查“ean”是否足够长,如果不够长,则显示“validation.ean.length”消息


非常感谢

映射。验证
将返回一个新的
映射
,因此您可以再次调用
验证
。您可以通过这种方式链接任意数量的对象。

我想您可以再次调用verifying
“ean”->longNumber.verifying(“,Product.findByEan().isEmpty)。verifying(“?”,=>true)
我已经尝试过这个方法,但看起来我只是语法不正确。它现在工作得很好,谢谢你!