我有这些案例类将自定义映射绑定到对象的形式 - 如何?
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
对象,如果没有关系不存在显示错误。
有关播放框架文档的示例没有帮助。
它们仅显示表示单个对象及其所有字段的表单的映射。
这里我代表一个(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” wlil像其他映射工作,它会将发布的数据绑定到一个对象,在我们的例子中是一个从db加载的博客,如果它不成功,它会提供一个我们可以在formWithErrors =>
子句中使用的错误。
我不知道如何做到这一点,这里的文档有点缺乏......
任何帮助表示赞赏!
我接受詹姆斯回答,但使用了一些不同的东西,我会添加我的答案,以便其他人可以查看它。 – samz 2013-04-11 09:09:08