以scala形式获取所有字段

时间:2013-09-18 15:13:26

标签: scala playframework

我使用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()不能有两个以上的参数,但在这种情况下如何获取其他字段?

1 个答案:

答案 0 :(得分:2)

问题的答案在错误消息中。您的表单signForm被定义为(String,String),您需要扩展它以包含其他字段。如果您包含表单的代码,则可以给出更详细的答案。