電話番号を入力しなかった場合にのみ必要となる、フィールド、電子メールを含むフォームが必要だとしましょう。また、電話番号は、電子メールを入力しなかった場合にのみ必要です。これを行う?
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 フォームを使用してこれを行いたいと思います。バリデーターまたは制約。