2012-07-24 2 views
2

내 프로젝트에서이 프레임 워크를 Symfony2로 사용합니다. 조건이 실패하면 기본 페이지로 리디렉션하는 PHP 함수를 작성하려고했습니다. 그래서 내 기능은 이것과 같았습니다.symfony 리디렉션 함수 내

public function validate($value){ 
    if($value==null){ 
     return $this->redirect(
      $this->generateUrl('home_page', array("message"=>"")) 
     ); 
    } 
} 

이 함수는 다음과 같습니다.

$this->validate($value); 

문제는 리디렉션되지 않습니다.
제발 도와주세요. 왜 리디렉션되지 않는지 알 수 없습니다. 감사

+0

이 기능은 컨트롤러에 있습니까? – Chopchop

+0

예 컨트롤러에 있습니다. –

답변

8

당신은 다음과 같이 호출해야 할 것 :

$response = $this->validate($value); 

if ($response instanceof \Symfony\Component\HttpFoundation\Response) { 
    return $response; 
} 

대신 사용자 정의 리디렉션 예외를 발생하고 리디렉션 응답을 만들 것 리스너를 작성할 수 응답을 반환.

+0

Jakub 대단히 고맙습니다. –

1

리디렉션하려면 호출 동작에서 리디렉션 응답을 반환해야합니다. 의미, 당신은 validate()의 반환을 반환해야합니다.

return $this->validate($value); 
+1

반환 된 것을 확인해야합니다. validate()가 아무 것도 반환하지 않으면 인터럽트하지 않고 컨트롤러 코드를 계속 실행합니다. –

+1

@Jakub Zalas 아 그래, 네가 맞아. 내 잘못이야. : 나는 왜 코드가 리다이렉트하지 않았는가에 너무 집중했다. +1 –

관련 문제