Php 从很多其他地方传来的行动,如何处理;“后退”;按钮

Php 从很多其他地方传来的行动,如何处理;“后退”;按钮,php,cakephp,Php,Cakephp,我在控制器中有一个动作(例如视图),该动作是从其他控制器中的多个其他动作调用的。如何创建一个“后退”按钮,将我带回到让我来到这里的页面,这是最好的方法 我使用了诸如“back_controller”和“back_action”之类的命名参数,效果相当不错,但当页面有一个表单提交时,它们会变得很尴尬。我必须确保将这些参数作为隐藏字段或表单url传递,然后在处理表单后查找它们 是否有其他人提出的某种堆栈或其他解决方案能够更好地处理这种情况?我在我的许多项目中都看到了这个问题,我还没有找到一个好的解决

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

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


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

$\u SERVER['HTTP\u REFERER']

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

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

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

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


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

“[…]是通过其他控制器中的多个其他操作调用的。”-您需要用户单击链接吗?是的,例如,有链接联系人的客户记录。您可以从customer视图中的列表进入contacts视图,也可以从invoice视图(其中包含contact_id link字段)进入contacts视图。这将适用于第一次跳转,但如果屏幕有一个表单并提交给自己,我想记住另一个屏幕使我们到达该屏幕。请参阅我对原始帖子的评论,以获得一个可能更清楚的示例。