Scala Playframework是怎样的';谁的会话被注入到动作中?
我试图编写自己的操作,并隐式地传入数据库会话。然而,在我的控制器中,我最多只能做这样的事情Scala Playframework是怎样的';谁的会话被注入到动作中?,scala,slick,playframework-2.3,implicits,Scala,Slick,Playframework 2.3,Implicits,我试图编写自己的操作,并隐式地传入数据库会话。然而,在我的控制器中,我最多只能做这样的事情 def index = MyAction { implicit myRequest => implicit val dbss = myRequest.databaseSession aClass.someMethod() // requires an implicit DatabaseSession } 在playframework中,您可以访问会话,如下所示: def index = A
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
}
在这里,我们可以看到,当只有请求作为隐式传递时,您可以直接访问会话。那么会议从何而来?我怎样才能像数据库会话一样通过数据库会话呢?这样我就不用写了:
implicit val dbss = myRequest.databaseSession
我知道这是可能的,因为slick能够隐式地通过他们的dbSession。但我似乎也不知道他们是怎么做到的
完全糊涂了=经过艰苦的挖掘,我找到了自己问题的答案 秘密在于控制器,它有一个隐式定义:
implicit def request2session(implicit request: RequestHeader): Session
PlayFramework,你很聪明 你试过玩Slick插件吗?是的,我有,但我需要将DBAction与on-AuthAction混合用于身份验证。这就是为什么我需要理解这个概念来构建我自己的。你能同时共享DBAction和AuthAction的签名吗?对不起,我不明白你所说的共享签名的意思。你是说把动作组合在一起?维基说,创作起来相当困难:你似乎把剧本
会话
和流畅的db会话
搞混了。它们根本不是一回事。