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)
任何人都知道为什么这不起作用?
您正在尝试将请求转发到URI,而不是捆绑字符串.
例如,您的转发应该是......
$response = $this->forward('OurStartBundle:Default:index', array(
'_locale' => 'de_DE'
));
Run Code Online (Sandbox Code Playgroud)