2012-07-12 69 views
2

我有沒有任何其他信息,只是現場的路線(即起始頁):Symfony的路由:可以調用的路線,但並不期待

homepage: 
    pattern: /{_locale}/ 
    defaults: { _controller: OurStartBundle:Default:index } 

如果我所說的直接路由它的工作原理(即:本地主機/ de_DE這個/),但如果我轉發它拋出的錯誤:

Unable to parse the controller name "/app_dev.php/de_DE/".

我前使用控制器的方法是這樣的:

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

任何人都知道爲什麼這不起作用?

回答

0

的問題是,我使用$這個 - > forward()方法在那裏我想重定向和應該使用$這個 - >重定向( )。

解決辦法是:

$locale = \Locale::acceptFromHttp($_SERVER['HTTP_ACCEPT_LANGUAGE']); 
return $this->redirect($this->generateUrl('OurStartBundle_homepage', array('_locale' => $locale))); 
5

您試圖將請求轉發給URI而不是捆綁字符串。

例如,您的預約掛號應該是...

$response = $this->forward('OurStartBundle:Default:index', array(
    '_locale' => 'de_DE' 
)); 
+0

啊,不,不正是我想要的,因爲我確實想改變URL。 但我在答案中找到了我的答案。我必須使用$ this->重定向($ url)而不是$ this-> forward(..)。對。 – 2012-07-12 12:53:04

+1

@AndreschSerj好東西 – JamesHalsall 2012-07-12 12:53:43