Symfony Routing:可以呼叫路由但不能转发

And*_*erj 2 locale url-routing internationalization symfony-2.1

我有一个只有语言环境的路由,没有任何其他信息(起始页):

homepage:
    pattern:  /{_locale}/
    defaults: { _controller: OurStartBundle:Default:index }
Run Code Online (Sandbox Code Playgroud)

如果我直接调用该路由它(即:localhost/de_DE /),但如果我转发它会抛出错误:

无法解析控制器名称"/app_dev.php/de_DE/".

我使用这样的Controller方法转发:

$locale = \Locale::acceptFromHttp($_SERVER['HTTP_ACCEPT_LANGUAGE']);    
return $this->forward($this->generateUrl('homepage', array('_locale' => $locale)));
Run Code Online (Sandbox Code Playgroud)

任何人都知道为什么这不起作用?

Jam*_*all 5

您正在尝试将请求转发到URI,而不是捆绑字符串.

例如,您的转发应该是......

$response = $this->forward('OurStartBundle:Default:index', array(
    '_locale' => 'de_DE'
));
Run Code Online (Sandbox Code Playgroud)