我使用Play 2框架在scala中创建一个表单,我遇到了所有字段的问题: 在我仅使用2个字段进行测试之前,它的工作原理是:
def subscription = Action {
implicit request =>
signForm.bindFromRequest.fold(
errors => BadRequest,
{
case (username, password) =>
User.create(User(username, password))
Ok(views.html.index(userForm, "visible", "User created."))
}
)
}
但是当我想拥有超过2个字段时,它不起作用:
def subscription = Action {
implicit request =>
signForm.bindFromRequest.fold(
errors => BadRequest,
{
case (username, password, firstname, lastname, company) =>
User.create(User(username, password, firstname, lastname, company))
Ok(views.html.index(userForm, "visible", "User created."))
}
)
}
它告诉我:构造函数不能被实例化为期望的类型;发现:(T1,T2,T3,T4,T5)必需:(String,String)
我理解case()不能有两个以上的参数,但在这种情况下如何获取其他字段?
答案 0 :(得分:2)
问题的答案在错误消息中。您的表单signForm
被定义为(String,String),您需要扩展它以包含其他字段。如果您包含表单的代码,则可以给出更详细的答案。