我正在尝试编写自己的操作并隐式传入 DatabaseSession。但是,充其量我可以在我的控制器中做这样的事情。
def index = MyAction { implicit myRequest =>
implicit val dbss = myRequest.databaseSession
aClass.someMethod() // requires an implicit DatabaseSession
}
在 playframework 中,您可以像这样访问会话:
def index = Action { implicit request =>
val someOption = session.get("something")
// OR
aClass.doSomething() // requires an implicit Session
}
在这里,我们可以看到,当只有请求作为隐式传入时,您可以直接访问会话。那么会话是从哪里来的呢?我怎么能像 Session 一样传入我的 DatabaseSession?这样我就不必写了:
implicit val dbss = myRequest.databaseSession
我知道这是可能的,因为 slick 能够隐式传递他们的 dbSession。但我似乎也无法弄清楚他们是如何做到的。
完全糊涂了!=S