2012-09-12 59 views
2

我想重定向到使用CakePHP重定向方法的新頁面,但由於某種原因重定向不起作用。我用來重定向的代碼是CakePHP重定向方法不重定向

public function update_sticky_postition_in_db() 
{ 
    $this->autoRender = false; 

    ... // Save info to database 

    $this->redirect(array('action' => 'tool')); 
} 

其中,tool是我要重定向到的視圖的名稱。爲了加快找到問題的過程,我檢查了幾件事情,並認爲我找到了問題的原因。基本上我試圖重定向到目前處於活動狀態的視圖,我認爲這是它不重定向的一部分原因。我已經讀過,它可能與緩存頁面有關,但我不知道如何解決這個問題。

此外,當使用螢火蟲我可以看到重定向發送GET請求,但在此之後什麼都沒有發生。我是否必須對GET請求做些什麼或者Cake是否爲我處理。我也檢查了GET的URL,它是正確的。

它位於控制器內,使用正確的名稱,因爲我可以查看原始工具頁面。

另外,update_sticky_postition_in_db()方法沒有視圖(因此爲什麼自動渲染設置爲false),其目的是從ajax調用更新數據庫中的行。

+0

只有在這個頁面或所有頁面中有這個問題嗎? –

+0

看來它不會重定向到任何頁面。另外我應該添加重定向不在控制器的工具方法中。 – Lsakurifaisu

+1

你可以顯示上下文嗎?$ this-> redirect ...(我認爲它在控制器中是)? –

回答

4

從你的帖子看來,你使用ajax調用來觸發update_sticky_postition_in_db(),所以重定向不起作用。

您可以在ajax success方法中使用JavaScript進行重定向。

爲了做到這一點,你可以發送一些json_encode()消息從你上面的方法,並檢查內部的狀態ajax success方法你可以使用window.location重定向。

+0

是的,解決了這個問題。謝謝我完全卡住了。 – Lsakurifaisu

+0

@Lakakurifaisu不客氣。 – thecodeparadox

+0

也會碰巧知道使用我目前使用的方法調試數據的好方法。我曾嘗試使用調試和設置Flash方法(我試圖刷新頁面的一部分原因),但這些都沒有工作。有任何想法嗎? – Lsakurifaisu