Symfony2

时间:2015-06-18 00:20:02

标签: php symfony routes

我目前的项目应该可以在世界各地使用。我显示的内容取决于用户的语言和用户的国家。

示例:

  • domain.com/ de-ch /site.html适用于瑞士的德语人士
  • domain.com/ de-de /site.html适用于德国的德语人士
  • domain.com/ en-de /site.html适用于德语的英语人士
  • domain.com/ de /site.html适用于德国人,独立于国家/地区
  • domain.com/英文一般主页

依据语言和国家/地区,我会显示翻译成该语言的其他内容或相同内容。

目前,我的路线看起来像这样:

frontend:
    resource: "@MyBundle/Resources/config/routing.yml"
    prefix:   /{_locale}{country}/
    defaults: { country: -de }
    requirements: 
        _locale: en|us|de|ch
        country: -de|-ch|-at|

我想要的是一组路线(site.html是一个示例路线),可用于所有区域设置和国家/地区组合。

我目前的解决方案看起来不太好。例如,我必须在所有国家/地区添加破折号。当我想要使用这些路线时,这也必须要做...有没有更优雅的方式?像这样的东西?

frontend_only_locale:
    resource: "@MyBundle/Resources/config/routing.yml"
    prefix:   /{_locale}/
    defaults: { country: de }
    requirements: 
        _locale: en|us|de|ch

frontend_both:
    resource: "@MyBundle/Resources/config/routing.yml"
    prefix:   /{_locale}-{country}/
    defaults: { country: de }
    requirements: 
        _locale: en|us|de|ch
        country: de|ch|at

如何使用破折号分隔两个参数,其中第二个参数是可选的?在这种情况下,破折号也应该被省略......

0 个答案:

没有答案