【发布时间】:2014-05-26 10:31:32
【问题描述】:
我正在尝试创建一个可扩展的 cms。我的数据库中有 URL,例如“/menu-item/content”,每个 URL 都有一个以“AcmeDemoBundle:Default:index”格式指定的操作。 我想解决此操作并根据匹配的 URL 调用适当的控制器。
我的主要目标是直接调用存储在数据库中的控制器。在我使用一种方法之前,当我将一个路由放在匹配所有 url 的路由的末尾时,将一个控制器与其关联,从数据库中找到目标控制器,而不是使用 Controller::forward() 来获得预期的结果。这种方法的主要问题是我需要为每个页面加载创建一个不必要的子请求。另一个问题是将 post 变量传递给这个新的子请求。
到目前为止,我已尝试监听 kernel.request 事件并修改 $request->attributes 以包含匹配的 _controller 值,但似乎没有效果。
感谢您对该主题的任何建议。
【问题讨论】:
-
根据这个答案stackoverflow.com/questions/8799623/…,需要给监听器设置一个高于32的优先级。你这样做了吗?