我正在学习在Play Framework中使用表单,我遇到了以下问题。我有一个这样的案例类:
case class Part(id: Option[Int],
description: String,
created: DateTime)
我正在尝试从/向这样定义的播放表单中检索/填充它:
val addPartForm = Form(
mapping(
"description" -> text
)(tp => Part.apply(id = None, description = tp._1, created = new DateTime()))
(pt => (pt.description)))
所以基本上我正在尝试提供自定义映射函数,因为通常的Part.apply和Part.unapply版本不是完全匹配/映射。当我尝试编译此代码时,它会在tp
参数上显示错误missing parameter type
。为什么tp
的类型无法自动推断?如果我明确提供tp
的类型,它会编译。谢谢你的帮助。
答案 0 :(得分:1)
尝试按如下方式描述生成的元组:
val addPartForm = Form(
mapping(
"description" -> text
)((description) => Part(id = None, description = description, created = new DateTime()))
(part => Some(part.description))
)