ScalaのPlayFrameworkドキュメントは、フォームをケースクラスに暗黙的にマッピングするサンプルを示しています。
case class User(name: String, age: Int)
val userForm = Form(
mapping(
"name" -> text,
"age" -> number
)(User.apply)(User.unapply)
)
この一意のサンプルでは、プリミティブ値のみが使用されていることがわかります。
この変更を行った場合はどうでしょうか。
case class Car(brandName: String)
case class User(name: String, car: Car)
さらに、フォームがUserの名前(String)と(String)をcarId返すと仮定しましょう。
val userForm = Form(
mapping(
"name" -> text,
"car" -> carRepository.findById(nonEmptyText) // concept I wish
)(User.apply)(User.unapply)
)
carIdたとえばフォームによって提供されたものを使用して、この希望のラインで車をインスタンス化し、carIdが空でないことを確認する方法はありますStringか?