-->

Symfony2的路由全局{} _locale要求(Symfony2 Route global {_

2019-06-26 17:09发布

我在我的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要求?

Answer 1:

我发现了一个办法做到这一点:

使用“主”的路由导入路由配置。 正如我的包通常有太多的信息,我已经分离的控制器,资源和航线型动物“模块”。 由于这种做法的结果是,我已经发现了这一点:

法师的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 }

与此路由配置,最大限度地减少我哪里需要写的语言环境要求的场所。



Answer 2:

看看这个讨论:

https://groups.google.com/forum/#!topic/symfony-devs/6oxsa7whBps

看来,这是可以做到类似你需要什么东西,只表示{} _locale参数是在路线的开始,而不是结束时确定。 你也将需要运行的2.1版本的symfony测试4(根据小煜)



文章来源: Symfony2 Route global {_locale} requirements