在symfony 2中的路线中隐藏全局区域设置

时间:2015-10-29 11:46:44

标签: php symfony routing locale

在Symfony2项目中,当语言设置为default(en)时,我们希望在url上显示不带语言环境的不同网页,如下例所示:

  1. http://www.thesiteimcoding.com/user/account =>显示EN版本
  2. http://www.thesiteimcoding.com/es/user/account =>强制ES语言环境
  3. 所以,我试图在routing.yml文件中创建一个双重定向,如下所示:

    locale_routing2:
      resource: routing2.yml
      prefix:  /
      defaults:
        _locale: en
    
    
    locale_routing:
      resource: routing2.yml
      prefix: /{_locale}/
      requirements:
        _locale: fr|es
    

    在routing2.yml文件中,我有:

    analytics:
        resource: "@AnalyticsBundle/Controller/"
        type:     annotation
        prefix:   /analytics
    

    此外,我尝试将routing.yml修改为:

    software:
    resource: "@SoftwareBundle/Controller/"
    type:     annotation
    prefix:   /{_locale}/software/
    requirements:
        _locale: |es|ca|pt_pt|fr|de|it|ja|ko|zh-hans
    

    软件2:     资源:" @ SoftwareBundle / Controller /"     type:annotation     前缀:/ software /     默认值:         _locale:en

    但它只适用于最后一个路由块,如果我检查它们的顺序,它会获得最新的路由方法。

    所以,我的问题是如何使其有效? 我需要添加什么来阅读重定向到控制器的两种方法?

    或者,有什么方法可以隐藏网址的某些部分,以便不向用户显示_locale ???

    感谢您的时间。射线。

0 个答案:

没有答案