是否可以定义Symfony2路由规则中使用的语言环境数组,这样我就不必在每个路由中反复重复它,并在我更改支持的语言列表时单独更改每个路由?
我知道快速搜索&amp;替换<{1}}中的,但是可以轻松扩展问题的范围,以便引发这样的问题:是否可以在外部提供此区域设置数组(即可以使用它从数据库中读取)?
澄清 - 以下是我现在所拥有的一个例子:
routing.yml
以下是我想要的例子:
page_show:
pattern: /{_locale}/page/{slug}
defaults: { _controller: myCompanymyBundle:Cms:pageShow }
requirements:
_locale: en|pl
slug: "[^,]+"
news_archive:
pattern: /{_locale}/news/archive
defaults: { _controller: myCompanymyBundle:Cms:newsArchive }
requirements:
_locale: en|pl
其中page_show:
pattern: /{_locale}/page/{slug}
defaults: { _controller: myCompanymyBundle:Cms:pageShow }
requirements:
_locale: languages
slug: "[^,]+"
news_archive:
pattern: /{_locale}/news/archive
defaults: { _controller: myCompanymyBundle:Cms:newsArchive }
requirements:
_locale: languages
是一个数组,无论是YAML数组还是外部提供的PHP数组;它并不是很重要。
这对于进一步简化我正在编写的应用程序的配置非常有帮助。我想在config.yml文件中提取尽可能多的配置。因此,如果我决定,例如,我想快速添加一种新语言并且我已经在业务逻辑和模板层中支持它,我只需要修改languages
中的语言数组,瞧,它已经完成了
答案 0 :(得分:0)
每次都会让我烦恼。我唯一可以提供的是将你的需求参数放到app / config / parameters.yml
中# src/App/Resources/config/routing.yml
sport:
pattern: /{_locale}/{sport}
defaults: { _controller: App:Vote:vote }
requirements: { _locale: %routing_locales%, sport: %routing_sports% }
# app/config/parameters.yml
parameters:
# routing requirement regex
routing_sports: 'hockey|football' # available sports so far
routing_locales: 'de|fr' # available locales so far