我有这些案例课
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
从 db 加载的对象,如果它不存在则显示错误。
播放框架文档上的示例没有帮助。
它们仅显示表示单个对象及其所有字段的表单的映射。
在这里,我代表 a 的元组,(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}
...
“blogMapping”将像其他映射一样工作,它将发布的数据绑定到一个对象,在我们的例子中是从 db 加载的博客,如果它不成功,它将提供一个我们可以在formWithErrors =>
子句中使用的错误。
我不知道如何做到这一点,这里的文档有点缺乏......
感谢任何帮助!