2011-10-11 20 views
0

有人問這個quesion但沒有回答解決了這個問題頭時使用CakePHP

標題( 「刷新:5; URL = 'pagetoredirect.php'」);

我們可以利用這一點,如果我們想重定向我們的頁面以5秒,

,有沒有辦法在CakePHP的五秒重定向頁面?

如果是,請讓我知道

我想這代碼,但不能正常工作 /app/controllers/examples_controller.php

?php 
    class ExamplesController extends AppController 
    { 
     public $name = "Examples"; 
     ... 
     public function someAction(){ 
      ... 
      $url = array('controller' => 'examples', 'action' => 'someOtherAction'); 
      $this->set('url', $url); 
      $this->header("refresh:5; url='".Router::url($url)."'"); 
     } 
     ... 
    } 
?> 

/app/views/examples/some_action.ctp

<p class='notice'> 
    <?php echo $this->Html->link("You are being redirected to ".Router::url($url)." in 5 seconds. If you do not wish to wait click here.", $url); ?> 
</p> 
+2

這應該做到這一點,雖然沒有報價周圍的網址。 「不起作用」是什麼意思?你有錯誤嗎?標題沒有設置? – JJJ

+0

發送此錯誤通知(8):未定義變量:url [APP \ views \ books \ add.ctp,第13行] – fakhrawy

+0

@fakhrawy我已經嘗試了相同的http://stackoverflow.com/a/7260191/4380588,並且這個爲我工作。 –

回答

1

您可以使用flash命令。

與重定向()一樣,flash()方法用於在操作之後將用戶引導至新頁面。 flash()方法的不同之處在於它在將用戶傳遞給另一個URL之前顯示一條消息。

第一個參數應該包含要顯示的消息,第二個參數是一個CakePHP相對的URL。在轉發用戶之前,CakePHP將顯示$消息$ pause秒。

如果您希望使用您的閃存郵件使用特定模板,則可以在$ layout參數中指定該佈局的名稱。

對於頁面內的Flash消息,一定要檢查SessionComponent的setFlash()方法。

我認爲你可以不設置任何消息,以便flash命令只需要在所需數量的secods後重定向。

+0

你能給我一個例子嗎 – fakhrawy

+0

http://book.cakephp.org/view/1467/flash – JJJ

+0

@fakhrawy我的回答是否滿足你的問題?如果是,請接受。 –