Playframework 如何在play和slick中将会话值传递给不同的方法?

Playframework 如何在play和slick中将会话值传递给不同的方法?,playframework,slick,playframework-2.3,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) {

因此,我的一个游戏表单模型对象中有一个验证方法:

  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
        }
      }
    )
  }
如何将slick会话传递给validateForm方法?目前我无法查询表单验证,因为这些查询没有可使用的会话

我知道其中一些参考资料看起来并不漂亮,但自从这篇文章发表后,它们已经被更改了。

只需请求一次会话即可

def validateForm(form:Form[forms.RegisterForm.registerFormData])(implicit session: Session)
有一个从
rs
值隐式转换到slick会话的过程,将应用该过程