如何将会话值传递给播放和光滑的不同方法?

时间:2014-10-28 05:04:48

标签: playframework slick playframework-2.3

所以我在我的一个表单模型对象中有一个验证方法:

  def validateForm(form:Form[forms.RegisterForm.registerFormData]) = {
    val name = form("name").value.get
    val test = TableQuery[UsersTable].filter(_.name === name).firstOption.get.name
    if (test == something) {
      blah
    } else {
      blah
    }
  }
}

以下是控制器中的实现:

  def registerSubmit = DBAction { implicit rs =>
    RegisterForm.registerForm.bindFromRequest.fold(
      formWithErrors => {
        BadRequest(views.html.user.register(formWithErrors))
      },
      formData => {
        val valForm = RegisterForm.validateForm(RegisterForm.registerForm.fill(formData))
        if(valForm.hasErrors) {
          BadRequest(views.html.user.register(valForm))
        } else {
          stuff
        }
      }
    )
  }

如何将光滑会话传递给validateForm方法?目前我无法查询表单验证,因为查询没有要使用的会话。

我知道其中一些参考文献看起来并不漂亮,但自从这篇文章以来它们已被更改。

1 个答案:

答案 0 :(得分:1)

只需要一个会话

def validateForm(form:Form[forms.RegisterForm.registerFormData])(implicit session: Session)

从您的rs值到光滑会话的隐式转换将被应用。