我有一条仅用于区域设置的路由,没有任何其他信息(入门页面):
homepage:
pattern: /{_locale}/
defaults: { _controller: OurStartBundle:Default:index }如果我直接调用路由,它就能工作(即: 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)));有人知道为什么这不管用吗?
发布于 2012-07-12 12:54:20
问题是,我使用了$this->forward(),其中我想要重定向,并且应该使用$this-> redirect ()。
解决办法是:
$locale = \Locale::acceptFromHttp($_SERVER['HTTP_ACCEPT_LANGUAGE']);
return $this->redirect($this->generateUrl('OurStartBundle_homepage', array('_locale' => $locale)));发布于 2012-07-12 12:48:01
您正在尝试将请求转发到URI,而不是包字符串。
例如,你的预言片应该是..。
$response = $this->forward('OurStartBundle:Default:index', array(
'_locale' => 'de_DE'
));https://stackoverflow.com/questions/11452058
复制相似问题