3.5.3.2 Control de Flujo

3.5.3.2.1 redirect

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 de CakePHP. Por ejemplo, cuando un usuario ha hecho un pedido satisfactoriamente, probablemente desearás redirigirle a una ventana de recibo.

function realizarPedidos() {

    // 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'));
    }
}
  1. function realizarPedidos() {
  2. // La lógina para finalizar el pedido va aquí
  3. if($satisfactorio) {
  4. $this->redirect(array('controller' => 'pedidos', 'action' => 'gracias'));
  5. } else {
  6. $this->redirect(array('controller' => 'pedidos', 'action' => 'confirmar'));
  7. }
  8. }

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.

3.5.3.2.2 flash

flash(string $message, string $url, integer $pause)

Igualmente, 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 a 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.