奇怪的行为路线

时间:2013-07-15 17:34:18

标签: symfony symfony-2.3

我正在尝试进行此设置,但我遇到了问题: 使用lunetics locale bundle。

用户访问网站www.example.com,该软件包采用用户的区域设置并显示其本地页面,例如,如果他的位置是德语,您将看到www.example.com/de.

这种配置似乎无法获得它。

奇怪的是,即使没有该捆绑包,我也会对路线产生奇怪的行为: 例如,我设置了这条路线:

acme_site:
  resource: "@AcmeSiteBundle/Controller/"
  type:     annotation
  prefix:   /{_locale}
  defaults:  { _locale: en }
  requirements:
      _locale:  en|it

如果我转到www.example.com/en页面显示

如果我去www.example.com我返回了一个错误,其中表示没有路由/.

我做错了什么?

1 个答案:

答案 0 :(得分:0)

我不确定你的控制器文件夹是什么样的,但是我能够像这样用AcmeDemoBundle WelcomeController来解决你的问题:

acme_site_default:
  pattern:   /   
  defaults:  { _controller: AcmeDemoBundle:Welcome:index, _locale: en }

acme_site:
  pattern:   /{_locale}
  defaults:  { _controller: AcmeDemoBundle:Welcome:index}
  requirements:
      _locale:  en|it

_demo_secured:
    resource: "@AcmeDemoBundle/Controller/SecuredController.php"
    type:     annotation

_demo:
    resource: "@AcmeDemoBundle/Controller/DemoController.php"
    type:     annotation
    prefix:   /demo
...

基本上,定义多个模式。你应该能够用注释实现同样的东西:

/**
 * @Route("/", defaults={"_locale"="en"})
 * @Route("/{_locale}", requirements={"_locale" = "en|it"})
 */

希望有所帮助!