Play Framework документации по Scala показывает пример отображающую формы в случае класса неявно:Play Framework 2.1/форма отображения сложных объектов
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
«s имя (String) и carId
(String)
val userForm = Form(
mapping(
"name" -> text,
"car" -> carRepository.findById(nonEmptyText) // concept I wish
)(User.apply)(User.unapply)
)
Есть каким-либо образом создать экземпляр автомобиля по этой желаемой строке с помощью некоторого carId
, предоставленного, например, формой и гарантирующей, что carId
не является пустым String
?
Одно слово в моей голове ... «Стыд»:) Спасибо;) – Mik378
Или два ... «Больше кофеина!» ;). YW. Хотя ответ EECOLOR ниже может решить обе проблемы. Сейчас я изучаю Formatter. – trappedIntoCode
:) На самом деле ваше решение может решить обе проблемы с помощью метода 'verification' на вложенном сопоставлении, возвращающего' Constraint' и связанное с ним сообщение об ошибке. Таким образом, метод аргумента 'verifying' проверяет через базу данных' Car'. – Mik378