2012-07-12 1 views
2

내가입니다 (시작 페이지) 다른 정보가없는 단지 로케일에 대한 경로가 :심포니 라우팅 : 경로를 호출 할 수 있지만 기대에

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

문제는 내가 리디렉션을 원하고 $ this-을 사용해야 어디> 리디렉션() 앞으로 $ this->을 사용하는 것이 었습니다 ...해야한다).

솔루션입니다 : 내가 참으로 URL을 변경을 원하기 때문에

$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

아이, 아니, 내가 원하는 정확히 무엇을. 하지만 대답에 대한 답을 찾았습니다. $ this-> forward (..)보다는 $ this-> redirect ($ url)를 사용해야합니다. 권리. –

+1

@AndreschSerj 좋은 물건 – JamesHalsall