Scala 如何通过请求获得闪存?

Scala 如何通过请求获得闪存?,scala,playframework,implicit,Scala,Playframework,Implicit,我有一个控制器,它有一个动作: def index = Action { implicit request => Ok(views.html.index(MyModel.all) } 以及具有以下参数的索引视图: @(my_models : List[MyModel])(implicit flash : Flash) 似乎我需要拥有这两个隐式,以便在不显式传递的情况下访问flash。这就是我认为flash的工作原理: 如果在没有显式flash参数的情况下调用模板,那么编译器将在调用

我有一个控制器,它有一个动作:

def index = Action { implicit request =>
  Ok(views.html.index(MyModel.all)
}
以及具有以下参数的索引视图:

@(my_models : List[MyModel])(implicit flash : Flash)
似乎我需要拥有这两个隐式,以便在不显式传递的情况下访问flash。这就是我认为flash的工作原理:
如果在没有显式flash参数的情况下调用模板,那么编译器将在调用view函数的作用域中查找标记为implicit的flash。这个闪光灯是从哪里来的?请求被标记为隐式,但它不是闪存。我知道该请求有一个flash成员,但根据我对隐式的理解,我不知道视图如何访问该成员。

您的方法
索引
是某个类的一部分,它可以扩展,因此
控制器的所有方法都在范围内

Controller
中有隐式方法
flash

 implicit def flash (implicit request: RequestHeader): Flash
因此,如果在作用域中有implicit
RequestHeader
,它可以隐式地转换为
Flash
。 `