2009-11-11 2 views
1

다른 컨트롤러의 여러 다른 동작에서 호출 된 컨트롤러에서 동작 (예 :보기)이 있습니다. "Back"버튼을 만드는 가장 좋은 방법은 저를 여기에있는 페이지로 다시 데려다 줄 것입니까?"뒤로"버튼을 처리하는 방법은 다른 많은 장소에서 호출되었습니다.

"back_controller"및 "back_action"과 같은 명명 된 매개 변수를 사용했는데 매우 잘 작동하지만 페이지에 양식이 제출되면 어색해집니다. 그 매개 변수를 숨겨진 필드 또는 양식 url로 전달한 다음 양식이 처리 된 후에 해당 매개 변수를 찾으십시오.

다른 사람이이 상황을 더 잘 처리 할 수있는 스택 또는 다른 솔루션이 있습니까? 나는 많은 프로젝트에서이 문제를보고 있으며 아직 좋은 해결책을 찾지 못했다.

+0

"[...]이 (가) 다른 컨트롤러의 여러 다른 작업에서 호출되었습니다." - 사용자가 링크를 클릭하면 어떻게됩니까? –

+0

예, 연락처를 링크 한 고객 레코드입니다. 고객보기의 목록에서 연락처보기로 이동할 수 있지만 contact_id 링크 필드가있는 인보이스보기에서도 가져올 수 있습니다. –

답변

0

$ _SERVER [ 'HTTP_REFERER']

1

나는 완전히 질문을 이해하지 않지만,이 도움이 될 수 있습니다

당신이 사용할 수있는 리퍼러 페이지로 리디렉션해야하는 경우 :

$this->redirect($this->referer()); 

http://book.cakephp.org/view/425/redirect

+0

첫 번째 점프는 작동하지만 화면에 양식이 있고 제출하면 그 곳의 다른 화면을 기억하고 싶습니다. 더 명확하게 할 수있는 예를 보려면 내 원래 게시물에 대한 내 의견을 참조하십시오. –

1

나는 뒤로 버튼을 믿지 않아. 그것은 브라우저가 상당히 잘하는 기능이며 항상 뒤로 향하는 대신 특정 목적지로 이동하는 버튼을 갖는 것이 좋습니다.

뒤로 단추가 있어야하는 경우 세션에서 기록 스택을 만들 수 있습니다. 페이지가로드되면 해당 페이지를 기록에 추가하면됩니다 (동일한 페이지를 스택에 여러 번 밀어 넣지 않으려는 경우). 유일한 작업 인 사용자는 마지막 페이지로 사용자를 리디렉션하는 것과 같은 URL을 만들 수 있습니다.

관련 문제