从许多其他地方调用的动作,如何处理“后退”按钮?

时间:2009-11-11 15:03:07

标签: php cakephp

我在控制器中有一个动作(例如视图),该动作从其他控制器中的多个其他动作调用。创建“后退”按钮的最佳方法是如何将我带回到让我来到这里的页面?

我使用了像“back_controller”和“back_action”之类的命名参数,但效果相当不错,但是当页面有一个提交的表单时,它们会变得很尴尬。我必须确保将这些参数作为隐藏字段或表单url传递,然后在处理表单后查找它们。

是否有其他人提出的某种堆栈或其他解决方案可以更好地处理这种情况?我在很多项目中都看到了这个问题,而且我还没有找到一个好的解决方案。

3 个答案:

答案 0 :(得分:1)

我不完全理解你的问题,但这可能会有所帮助:

  

如果您需要重定向到referer页面,您可以使用:

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

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

答案 1 :(得分:1)

我不相信后退按钮。这是浏览器做得很好的一个功能,你最好让按钮总是把你带到特定的目的地而不是回来。

如果必须有后退按钮,则可以在会话中创建历史堆栈。当页面加载时,您只需将该页面推送到历史记录中(您将需要确保不要多次在堆栈上推送同一页面)。您可以像/ back一样创建URL,其唯一的工作就是将用户重定向到他们所在的最后一页。

答案 2 :(得分:0)

$ _ SERVER [ 'HTTP_REFERER']