Play framework 2.x(Scala)导航菜单 - 在每次请求时从db获取一些数据的最佳实践

问题描述 投票:1回答:1

我有一个问题....我正在使用Play 2.7(Scala)构建一个网站。我正在构建类似于cms的东西..你可以创建页面,事件,发表评论等...我正在建立一个导航菜单,应该从我的数据库表(类别)中存储的一些数据创建。

我的问题是应该在每个请求(主页,事件页面,帖子页面)上提取这个“数据”,我不确定这样做的最佳方法。我在考虑这3个解决方案:

  1. 在每个控制器上注入我的类别服务,并为视图上的导航菜单数据传递每个操作
  2. 创建一个过滤器,在每个控制器调用服务之前检索数据并最终在我的模板中通过请求传递来自“请求对象”的数据
  3. (不确定是否可能)创建一个模块或帮助程序,可以直接在模板上使用@KiveMeTheMenu()返回Seq [Category]

你怎么看?任何建议都会很棒!!谢谢你们。

scala playframework
1个回答
1
投票

像@LucatT这样的东西。希望能帮助到你。

routes

GET     /menu                  controllers.HomeController.giveMeTheMenu()

HomeController.scala

def giveMeTheMenu() =  SecureUserAction.async { implicit request =>
  // Codes here and fetch data from DB..
}
© www.soinside.com 2019 - 2024. All rights reserved.