Symfony2 路由全局 {_locale} 要求

2023-11-24

我在routing.yml 中指定了每个路由中的参数_locale 要求,我认为这一定可以简化这种情况。

路由.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 beta 3

是否可以为我的所有路线指定全局 _locale 要求?


我发现了一种方法可以做到这一点:

使用“主”路由导入路由配置。由于我的包通常包含太多信息,因此我一直将控制器、资源和路由分离到不同的“模块”中。通过这种方法,我发现了这一点:

主路由.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 }

通过这个路由配置,我最大限度地减少了需要编写区域设置要求的地方。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Symfony2 路由全局 {_locale} 要求 的相关文章

随机推荐