2009-11-11 51 views
1

我有一個操作(查看例如)從其他控制器中的多個其他操作調用的控制器。如何創建一個「返回」按鈕的最佳方式,將我帶回到讓我來到這裏的頁面?從許多其他地方調用的動作,如何處理「返回」按鈕?

我已經使用了像「back_controller」和「back_action」這樣的命名參數,並且工作得很好,但是當頁面有一個表單被提交時,它們會變得很笨拙。我必須確保將這些參數作爲隱藏字段或表單url傳遞,然後在處理表單後查找它們。

是否有某種堆棧或其他解決方案,其他任何人提出可以更好地處理這種情況?我在很多項目中看到了這個問題,我還沒有想出一個好的解決方案。

+0

」[...]從其他控制器中的多個其他操作調用。「 - 你通過用戶點擊鏈接了嗎? – 2009-11-11 15:08:09

+0

是的,例如,鏈接了聯繫人的客戶記錄。您可以從客戶視圖中的列表中獲取聯繫人視圖,但也可以從包含contact_id鏈接字段的發票視圖中獲取聯繫人視圖。 – 2009-11-11 15:20:09

回答

0

$ _ SERVER [「HTTP_REFERER」]

1

我不完全理解你的問題,但是這可能會有所幫助:

如果您需要重定向到可以使用引用者頁面:

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

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

+0

這將適用於第一次跳躍,但如果屏幕有形式並提交給自己,我想記住其他屏幕讓我們在那裏。請參閱我對原始帖子的評論,以便更清楚地說明一個例子。 – 2009-11-11 16:24:12

1

我不相信後退按鈕。這是一個功能,瀏覽器做得很好,你會更好的按鈕總是把你帶到特定的目的地而不是回來。

如果您必須有後退按鈕,您可以在會話中創建歷史堆棧。加載頁面時,只需將該頁面推送到歷史記錄中(您將希望確保不會多次將堆棧中的同一頁面壓入)。您可以創建像/ back這樣的URL,唯一的工作就是將用戶重定向到他們所在的最後一頁。 「

相關問題