У меня есть эти дела классСвязывание формы с пользовательским сопоставлением объекта - как?
case class Blog(id:Long, author:User, other stuff...)
case class Comment(id:Long, blog:Blog, comment:String)
и форму на стороне клиента, который отправляет данные
blog_id:"5"
comment:"wasssup"
Я пишу простой код, чтобы позволить пользователю добавить комментарий в блоге.
Пользователь регистрируется в так его user_id
не требуется со стороны клиента, мы знаем, кто он ...
Я хотел бы связать blog_id
к Blog
объекта, загруженного из БД, и если он Безразлично 't существует ошибка.
Примеры в документах с платформой play не помогают.
Они отображают только отображения для форм, которые представляют собой один объект и все его поля.
Здесь я представляю кортеж (b:Blog, comment:String)
и для Blog
Я только поставляю его id
.
Я хотел бы иметь отображение, которое обеспечило бы мне с преобразования + проверки + сообщения об ошибках, так что я могу написать что-то вроде:
val form = Form(
tuple(
"blog_id" -> blogMapping,
"comment" -> nonEmptyText
)
)
form.bindFromRequest().fold(...
formWithErrors => {...
}, {
case (blog, comment) => {do some db stuff to create the comment}
...
The «blogMapping» wlil работы, как и другие отображения , он привяжет опубликованные данные к объекту, в нашем случае - блог, загруженный из db, и в случае неудачи он предоставит ошибку, которую мы можем использовать в предложении formWithErrors =>
.
Я не уверен, как это сделать, документы здесь не хватает ...
любая помощь приветствуется!
Я принял Джеймс отвечает, но использовал что-то немного другое, я добавлю свой ответ, чтобы другие могли его просмотреть. – samz