3.5.5.2 Control de Flujo
3.5.5.2.1 redirect
El texto original ha cambiado despues que la traduccion. Por favor ayundanos a reslover este differencia. Puedes:
redirect(string $url, integer $status, boolean $exit)
El método de control de flujo que más frecuentemente utilizarás es redirect(). Este método toma su primer parámetro en forma de URL relativa con formato de CakePHP. Por ejemplo, cuando un usuario ha hecho un pedido satisfactoriamente, probablemente desearás redirigirle a una ventana de recibo.
function realizarPedido() {
// La lógina para finalizar el pedido va aquí
if($satisfactorio) {
$this->redirect(array('controller' => 'pedidos', 'action' => 'gracias'));
} else {
$this->redirect(array('controller' => 'pedidos', 'action' => 'confirmar'));
}
}
function realizarPedido() {// La lógina para finalizar el pedido va aquíif($satisfactorio) {$this->redirect(array('controller' => 'pedidos', 'action' => 'gracias'));} else {$this->redirect(array('controller' => 'pedidos', 'action' => 'confirmar'));}}
También puedes utilizar una URL absoluta o relativa como argumento $url:
$this->redirect('/pedidos/agradecimientos'));
$this->redirect('http://www.ejemplo.com');
$this->redirect('/pedidos/agradecimientos'));$this->redirect('http://www.ejemplo.com');
También puedes pasar datos a la acción:
$this->redirect(array('action' => 'editar', $id));
$this->redirect(array('action' => 'editar', $id));
El segundo parámetro de redirect() te permite definir un código de estado HTTP que acompañe la redirección. Puede que desees usar 301 (movido permanentemente) o 303 (mirar otro), dependiendo de la naturaleza de la redirección.
El metodo ejecutará exit() tras la redirección a menos que establezcas el tercer parámetro a false.
Si necesitas redirigir a la página origen(referer page) puedes usar:
$this->redirect($this->referer());
$this->redirect($this->referer());
3.5.5.2.2 flash
flash(string $message, string $url, integer $pause)
De manera similar a redirect(), el método flash() es usado para redirigir un usuario a una nueva página tras una operación. El método flash() es diferente en cuanto que muestra un mensaje antes de enviar al usuario a otra URL.
El primer parámetro debería contener el mensaje a mostrar, y el segundo parámetro es una URL relativa con formato CakePHP. CakePHP mostrará el mensaje en $message durante el número de segundos en $pause antes de reenviar al usuario a otra página.
Para mensajes flash en la página, cerciónate de echarle un ojo al método setFlash() del componente SessionComponent.


























