我正在构建一个带有动态路由的 CMS 风格的应用程序。到目前为止,它似乎工作正常,但输出不尊重 WDT、资产和链接的环境......它总是链接到/whatever
而不是/app_dev.php/whatever
.
动态路由是通过 kernel.request 监听器实现的。相关代码在gist上。我是否需要在某个时候将当前环境传递给 Twig?
编辑:
在开发模式下会出现问题......在生产模式下没有问题。
我正在构建一个带有动态路由的 CMS 风格的应用程序。到目前为止,它似乎工作正常,但输出不尊重 WDT、资产和链接的环境......它总是链接到/whatever
而不是/app_dev.php/whatever
.
动态路由是通过 kernel.request 监听器实现的。相关代码在gist上。我是否需要在某个时候将当前环境传递给 Twig?
编辑:
在开发模式下会出现问题......在生产模式下没有问题。
感谢@AdrienBrault,我终于通过使用控制器进行渲染解决了这个问题。
在 RequestListener 中,我向路由器的 RouteCollection 添加了一条新路由,指示将处理请求的控制器。
$route = new Route($path, array(
'_controller' => 'CmsBundle:Routing:routing',
));
$this->router->getRouteCollection()->add('cms', $route);
在控制器中获取原始 URL 有点困难,但最后我通过使用前面 add() 方法中分配的名称查询路由器 RouteCollection 来解决它。