gpt4 book ai didi

scala - 如何创建带有条件要求字段的 Play Framework 2.0 表单?

转载 作者:行者123 更新时间:2023-12-04 06:06:20 25 4
gpt4 key购买 nike

假设我想要一个带有字段的表单,电子邮件,只有当他们没有输入他们的电话号码时才需要。此外,如果他们没有输入他们的电子邮件,电话号码是必需的,我怎么办做这个?

如果 requiredNoValid 存在,我想做这样的事情。

import play.api.data._
import play.api.data.Forms._
import play.api.data.validation.Constraints._

case class User(email: Option[String] = None, age: Option[Int])

val userForm = Form(
mapping(
"email" -> email.verifying(requiredNoValid(phoneNumber)),
"phoneNumber" -> number.verifying(requiredNoValid(email))
)(User.apply)(User.unapply)
)

我已经在 Play 1.X 中为此构建了自己的解决方案,但我想放弃大部分解决方案,并使用 Play 2 表单为我完成此操作,如果功能存在,或者是否有办法通过实现来做到这一点验证器或约束。

最佳答案

您也可以添加 verifying在几个领域。举个简单的例子:

val userForm = Form(
mapping(
"email" -> optional(email),
"phoneNumber" -> optional(number)
) verifying("You must provide your email or phone number.", {
case (e, p) =>
isValidEmail(e) || isValidPhoneNumber(p)
})(User.apply)(User.unapply)
)

现在在外部验证内部,您可以访问电子邮件和电话号码,并且可以进行交叉验证。

关于scala - 如何创建带有条件要求字段的 Play Framework 2.0 表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12504937/

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