我在我的routing.yml指定_locale在每一个路线要求参数,我想这一定有什么东西来简化这种情况。
使用routing.yml
ProjectBaseBundle_index:
pattern: /{_locale}
defaults: { _controller: ProjectBaseBundle:Default:index }
requirements:
_locale: en|es
ProjectBaseBundle_privacy:
pattern: /privacy/{_locale}
defaults: { _controller: ProjectBaseBundle:Default:privacy }
requirements:
_locale: en|es
.....
ProjectBaseBundle_legal:
pattern: /legal/{_locale}
defaults: { _controller: ProjectBaseBundle:Default:legal }
requirements:
_locale: en|es
我使用的测试Symfony2.1 3
可以指定我的所有路由全球_locale要求?
我发现了一个办法做到这一点:
使用“主”的路由导入路由配置。 正如我的包通常有太多的信息,我已经分离的控制器,资源和航线型动物“模块”。 由于这种做法的结果是,我已经发现了这一点:
法师的routing.yml
ProjectBaseBundle_default:
resource: "@ProjectBaseBundle/Resources/config/routing-default.yml"
prefix: /{_locale}/project/
requirements:
_locale: en|es|de|fr
儿童路由default.yml
ProjectBaseBundle_default_privacy:
pattern: /privacy
defaults: { _controller: ProjectBaseBundle:Default:privacy }
ProjectBaseBundle_default_legal:
pattern: /legal
defaults: { _controller: ProjectBaseBundle:Default:legal }
ProjectBaseBundle_default_usage:
pattern: /usage
defaults: { _controller: ProjectBaseBundle:Default:usage }
与此路由配置,最大限度地减少我哪里需要写的语言环境要求的场所。
看看这个讨论:
https://groups.google.com/forum/#!topic/symfony-devs/6oxsa7whBps
看来,这是可以做到类似你需要什么东西,只表示{} _locale参数是在路线的开始,而不是结束时确定。 你也将需要运行的2.1版本的symfony测试4(根据小煜)