在我的Symfony2项目中,我有一个有帖子的新闻网站。这些帖子可以在不同地区发布。当前区域(用户选择)必须是URL的一部分。因此,URL应如下所示:
/mag => main news site, no region selection
/mag/region1/ => posts for region 1
/mag/region2/ => ...
/mag/region1/my-news-post-slug => detail view of one post
对于新闻帖子,我使用了Sonata News Bundle。
现在我的问题是,如何在不更改我使用的捆绑包的每个控制器和模板的情况下,如何将用户的区域选择添加到路由系统? 当我将它添加到路由配置时,如
magazin:
resource: '@SonataNewsBundle/Resources/config/routing/news.xml'
prefix: /mag/{region}
我收到错误,因为在新闻包(和其他人)的控制器和模板中生成路由时未设置此参数。我需要像路由组件已经添加的{_format}
或{_locale}
路由变量这样的东西。是否可以添加“全局”值?
答案 0 :(得分:1)
看看Symfony如何通过语言环境来做到这一点。
他们使用事件监听器从请求参数中捕获语言环境,并将其添加到路由器的上下文参数中。