2012-07-09 2 views
1

Symfony 프레임 워크를 사용하는 레거시 시스템을 이식 중입니다. Symfony에 대한 경험이 거의 없습니다.symfony가 세션 값을 포함한 외부 사이트로 라우팅

조치 경로를 외부 사이트에 겹쳐 쓰고 세션 값을 매개 변수로 포함시켜야합니다.

이것은 현재 routing.yml 코드

mysystemtool: 
    url: /:module/mysystemtool/tool/* 
    param: { action: mysystemtool } 

입니다 그리고 나는이 작업을 수행하는 방법에 http://thirdpartyurl.com/?session_param=session_value

어떤 생각 같은 URL로 리디렉션해야합니까?

+0

Symfony 버전은 무엇입니까? 레거시는 1.x를 제안하지만 항상 더 안전합니다. – hakre

+0

나는 내가 이해하고 있는지 잘 모르겠다. 라우팅은 들어오는 URI를 컨트롤러/액션에 매핑하기위한 것입니다. 외부 URL을 생성해야하는 경우 라우팅 구성 요소의 범위를 벗어나는 자체 논리/방법이 필요합니다. – MDrollette

답변

10

라우팅은 내부 용이므로 라우팅 할 수 없습니다. 즉, 컨트롤러에 리디렉션 할 수 있습니다 말했다 : 물론

public function executeMysystemtool(sfWebRequest $request) { 

    $param = $this->getUser()->getAttribute('session_param', 'default_value'); 
    $this->redirect('http://thirdpartyurl.com?session_param='.$param); 
} 

는 당신이 필요로하는 당신의 actions.class.php 당신이 그냥 논리를 변경해야한다 기존의 액션 다음의 경우이 작업을 코딩 만 할 수 있도록 모듈에서 설정 행동.

+0

이것에 대한 훌륭한 점은 Symfony가 URL을 엉망으로 만들고 싶지 않을 때 내부 용으로도 작동한다는 것입니다. 예를 들어 http://stackoverflow.com/questions/1496975/symfony-redirect-with-2-parameters에서 모든 GET 매개 변수가/stacked// slashes/like /로 나타나지 않게하려는 경우 – user14764

+0

@ user14764 : 음 이 경우 라우팅 규칙을 변경하여 추가 매개 변수를 쿼리 문자열로 추가 할 수도 있습니다. – prodigitalson

관련 문제