gpt4 book ai didi

symfony - 是否可以添加自定义全局 Symfony2 路由变量,例如 _format 和 _locale?

转载 作者:行者123 更新时间:2023-12-02 21:22:17 29 4
gpt4 key购买 nike

在我的 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 .

现在我的问题是,如何将用户的区域选择添加到路线系统中,而无需更改我使用的 bundle 的每个 Controller 和模板?当我将其添加到路由配置中时,例如

magazin:
resource: '@SonataNewsBundle/Resources/config/routing/news.xml'
prefix: /mag/{region}

我收到错误,因为在新闻包(和其他)的 Controller 和模板中生成路由时未设置此参数。我需要类似 {_format}{_locale} 路由变量之类的东西,这些变量显然已经由路由组件添加了。是否可以添加这样的“全局”值?

最佳答案

看看 Symfony 如何通过语言环境做到这一点。

https://github.com/symfony/symfony/blob/2.8/src/Symfony/Component/HttpKernel/EventListener/LocaleListener.php

它们使用事件监听器从请求参数中捕获区域设置并将其添加到路由器的上下文参数中。

关于symfony - 是否可以添加自定义全局 Symfony2 路由变量,例如 _format 和 _locale?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31564038/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com