我們的Play應用程序使用Slick作爲數據訪問層。這意味着,在我們的應用程序的幾乎每個動作中,我們都需要在作用域上隱式提供當前的Request
和Slick的數據庫Session
。具有多個隱式參數的自定義操作
我想寫一個自定義Action
做到這一點,所以我們只需要一條線就可以做到這一點。我想要做的是寫這樣一種方式,我可以寫這樣的一種方式:
def someAction = DBAction { implicit request, session =>
// body with implicit request and session on scope
但這是不合法的語法。使用元組不起作用,因爲它不能隱式地將元組解包到操作主體中。是否可以創建一個將多個隱式參數傳遞給body的自定義動作?我該怎麼做呢?
可能重複【如何做兩個函數的參數爲隱式(http://stackoverflow.com/questions/17296436/how-to-make-two-function-parameters-as-implicit) – senia
有有兩種方法可以實現這一點:一個curryed動作('Request [AnyContent] => Session => Result' - >請參閱下面的@DCKing答案)或WrappedRequest(請參閱我的答案)。 –