【发布时间】:2014-10-29 19:55:57
【问题描述】:
我正在尝试编写自己的操作并隐式传入 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
【问题讨论】:
-
您尝试过 Play Slick 插件吗? github.com/playframework/play-slick
-
是的,我有,但我需要将 DBAction 与我的 on AuthAction 混合以进行身份验证。所以这就是为什么我需要理解这个概念来构建自己的概念。
-
你能分享 DBAction 和 AuthAction 的签名吗?
-
对不起,我不理解你分享签名的意思。你的意思是把动作组合在一起吗?维基说:github.com/playframework/play-slick/wiki/Usage
-
您似乎将 Play
Session与光滑的 dbSession混淆了。它们根本不是一回事。
标签: scala slick playframework-2.3 implicits