Действие вызывается из многих других мест, как обработать кнопку «Назад»? - PullRequest
1 голос
/ 11 ноября 2009

У меня есть действие (см., Например) в контроллере, которое вызывается из нескольких других действий в других контроллерах. Как лучше всего создать кнопку «Назад», которая вернет меня на страницу, на которой я оказался здесь?

Я использовал именованные параметры, такие как "back_controller" и "back_action", и это работает довольно хорошо, но они становятся неудобными, когда на странице есть форма, которая отправляется. Я должен обязательно передать эти параметры в виде скрытых полей или в URL-адресе формы, а затем искать их после обработки формы.

Есть ли какой-нибудь стек или другое решение, которое придумал кто-нибудь еще, чтобы лучше справиться с этой ситуацией? Я вижу эту проблему во многих своих проектах, и мне еще предстоит найти хорошее решение.

Ответы [ 3 ]

1 голос
/ 11 ноября 2009

Я не совсем понимаю ваш вопрос, но это может быть полезно:

Если вам нужно перенаправить на страницу реферера, вы можете использовать:

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

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

1 голос
/ 12 ноября 2009

Я не верю в кнопки назад. Это функция, которую браузер работает довольно хорошо, и вам лучше иметь кнопки, всегда доставляющие вас к определенным пунктам назначения, а не назад.

Если вам нужна кнопка «Назад», вы можете создать стек истории в сеансе. Когда страница загружается, вы просто помещаете эту страницу в историю (вам нужно убедиться, что вы не вставляете одну и ту же страницу в стек несколько раз). Вы можете создать URL-адрес, например / назад, единственная задача которого - перенаправить пользователя на последнюю страницу, на которой он находился.

0 голосов
/ 11 ноября 2009

$ _ SERVER [ 'HTTP_REFERER']

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...