заголовок ("обновить: 5; url = 'pagetoredirect.php'");
мы можем использовать это, если мы хотим перенаправить нашу страницу за 5 секунд,
Есть ли способ перенаправить страницу за 5 секунд в cakephp?
если да, пожалуйста, дайте мне знать
заголовок ("обновить: 5; url = 'pagetoredirect.php'");
мы можем использовать это, если мы хотим перенаправить нашу страницу за 5 секунд,
Есть ли способ перенаправить страницу за 5 секунд в cakephp?
если да, пожалуйста, дайте мне знать
Вы можете попробовать использовать метод AppController header()
:
http://api.cakephp.org/class/app-controller#method-AppControllerheader
В вашем контроллере:
class CarController{
public function add(){
$this->header("") //Implemented on AppController::header
}
}
/cake/libs/controller/controller.php
/**
* Convenience and object wrapper method for header(). Useful when doing tests and
* asserting that particular headers have been set.
*
* @param string $status The header message that is being set.
* @return void
* @access public
*/
function header($status) {
header($status);
}
...
Это показывает, что функция Controller::header() является простой оболочкой для прямых вызовов функции php header().
http://api.cakephp.org/class/app-controller#method-AppControllerheader
Итак, чтобы выполнить то, что вы хотите сделать:
/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 )."'" );
}
...
}
?>
Я передаю URL-адрес представлению и не использую die() или exit(), если вы действительно хотите отобразить представление. Пример:
/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>
Не используйте заголовок $this->в контроллере, так как он будет удален в версии 3.0. Используйте CakeResponse::header().
вот рабочий пример для cakephp 2.8
Контроллер:
$url = array('controller' => 'pages', 'action' => 'index');
$second = '5';
if (!$sessionData) {
return $this->redirect($url);
}
$this->Session->delete($bookingStr);
$this->response->header("refresh:$second; url='" . Router::url($url) . "'");
$this->set(compact('url', 'second'));
Вид:
<p class='notice'>
<?php echo $this->Html->link( "You are being redirected to ".Router::url($url, TRUE)." in ".$second." seconds. If you do not wish to wait click here.", $url ); ?>
</p>
<div class="step-content">
<div class="booking-form">
<div class="row">
Thank you.
</div>
</div>
</div>