【问题标题】:Symfony2 - Load all routes in controller (without rebuilding cache)Symfony2 - 在控制器中加载所有路由(不重建缓存)
【发布时间】:2018-03-20 15:58:04
【问题描述】:

我正在尝试创建一个带有 ChoiceType 字段的 Symfony 表单,该字段包含当前可用的所有路由。此表单的目的是将这些路由添加到我们后端的模块中。我已经创建了 ModuleRoute 实体。这些用于为在特定模块上工作的用户呈现正确的导航结构。

我在表单控制器中使用了Router#getRouteCollection(),在对页面的每个请求中都使用了路由cache will be rebuild

我正在考虑使用这种方法并将所有路由添加到数据库的命令。但是,这意味着每次添加路由时,也需要执行此命令。对于这么简单的任务来说,这一步似乎太过分了。

在控制器中加载这些路由的最佳做法是什么?如果没有:

  • 使用getRouteCollection() 时每次请求都重建缓存
  • 每次将路线添加到集合中时执行一个额外的命令
  • 创建一个使用getRouteCollection() 的控制器并将结果保存在会话、缓存等中。

感谢您与我一起思考。

亲切的问候

【问题讨论】:

    标签: php symfony controller routes symfony-forms


    【解决方案1】:

    我不确定您需要这些路由的用例是什么,但另一个问题是您可能不想在路由列表中包含一些路由,因为它们是来自分析器或 AJAX 路由的路由。因此,更好的方法可能是在数据库表中维护您自己的路线列表,用户可以从中进行选择。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-13
      • 1970-01-01
      • 2013-04-03
      • 1970-01-01
      • 2015-02-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多