2009-07-02 1 views
6

리디렉션 및 렌더링 이외의 특정보기 페이지로 컨트롤러를 리디렉션하는 다른 명령이 있습니까?CakePHP에서 리다이렉트와 렌더의 차이점은 무엇입니까?

나는

$this->redirect('/forms/homepage/'.$userId); 

로 리디렉션을하지만

$this->render('/forms/homepage/'.$userId); 

을 줄 경우 해당 페이지로 리디렉션되지 않습니다.

문제가 있습니까?

답변

12

redirect() 호출은 HTTP redirect을 발행합니다. CakePHP가 멈추기 때문에 리디렉션 후에 아무 일도 일어나지 않습니다. 리디렉션 호출 후 사용자가 입력 한 내용은 실행되지 않습니다. 대신 브라우저는 리디렉션 할 URL에 새로운 HTTP GET을 발행합니다.

render()를 호출하면보기가로드됩니다. 보기가 아니라 URL을 사용합니다. 리디렉션되지 않습니다. $ userID가 '101'이라고 가정합니다. 렌더링()에 대한 호출은 다음 파일을로드 할 것이다 : 존재하지 않는 파일 때문에

응용 프로그램 /보기/양식/홈페이지/101.ctp

을 아무 일도 발생하지 않습니다.