2012-09-12 3 views
2

CakePHP 리디렉션 방법을 사용하여 새 페이지로 리디렉션하려고하지만 리디렉션이 작동하지 않습니다. 내가 리디렉션 사용하고 코드는 도구는 내가로 리디렉션 트링하고있는 뷰의 이름입니다리디렉션하지 않는 CakePHP 리디렉션 방법

public function update_sticky_postition_in_db() 
{ 
    $this->autoRender = false; 

    ... // Save info to database 

    $this->redirect(array('action' => 'tool')); 
} 

입니다. 문제를 찾는 과정을 신속하게하기 위해 나는 몇 가지 사항을 점검하고 문제의 원인을 발견했다고 생각합니다. 기본적으로 현재 리디렉션되지 않는 이유 중 일부라고 생각하는 현재 활성 상태 인보기로 리디렉션하려고합니다. 페이지의 캐싱과 관련이 있을지 모르지만 그 문제를 해결하는 방법을 모르겠습니다.

또한 방화 광을 사용할 때 리디렉션이 GET 요청을 보내는 것을 볼 수 있지만 이후에는 아무 것도 일어나지 않습니다. GET 요청으로 무언가를해야하거나 케이크가 나를 위해 그것을 처리해야합니까. 또한 GET의 URL을 확인하고 올바른지.

원본 도구 페이지를 볼 수 있으므로 올바른 이름으로 컨트롤러 내에 있습니다.

또한 update_sticky_postition_in_db() 메소드에는보기가 없으므로 (자동 렌더링이 false로 설정된 이유), 원래 목적은 데이터베이스의 행을 ajax 호출로 업데이트하는 것입니다.

+0

이 문제는이 페이지 또는 모든 페이지에서만 발생합니까? –

+0

그것은 어떤 페이지로도 재전송되지 않는 것으로 보입니다. 또한 리디렉션을 컨트롤러의 도구 메서드에 추가하지 말아야합니다. – Lsakurifaisu

+1

컨텍스트를 표시 할 수 있습니까? $ this-> redirect ... (컨트롤러에 있다고 가정합니다.) –

답변

4

게시물에서 리디렉션이 작동하지 않도록 ayax 호출을 사용하여 update_sticky_postition_in_db()을 발생시키는 것 같습니다.

JavaScript를 ajax success 방법으로 리디렉션 할 수 있습니다.

이렇게하려면 위의 방법 중 일부에서 json_encode() 메시지를 보내고을 사용하여 리디렉션 할 수있는 ajax success 방법으로 상태를 확인하십시오.

+0

입니다. 그래도 문제가 해결되었습니다. 고마워. 나는 완전히 붙어 있었다. – Lsakurifaisu

+0

@ Lsakurifaisu 오신 것을 환영합니다. – thecodeparadox

+0

또한 현재 사용중인 방법을 사용하여 데이터를 디버깅하는 좋은 방법을 알고있을 것입니다. 나는 디버그를 사용하고 플래시 메소드 (페이지의 새로 고침을 시도한 이유의 일부)를 시도했지만 둘 다 작동하지 않는 것 같습니다. 어떤 아이디어? – Lsakurifaisu

관련 문제