2009-07-02 15 views
6

¿Hay algún otro comando para redirigir un controlador a una página de vista particular que no sea redirigir y representar?¿Cuál es la diferencia entre redirigir y renderizar en CakePHP?

que tienen la redirección como

$this->redirect('/forms/homepage/'.$userId); 

Pero si me dan

$this->render('/forms/homepage/'.$userId); 

No es redireccionado a la página.

¿Hay algún problema?

Respuesta

12

La llamada a redirect() emite un HTTP redirect. Nada sucede después de la redirección porque CakePHP simplemente se detiene. Todo lo que coloque después de la llamada de redirección no se ejecutará. En cambio, el navegador simplemente emite un nuevo HTTP GET a la URL a la que está redireccionando.

La llamada a render() simplemente carga una vista. Lleva una ruta a una vista, no a una URL. No redirige. Suponga que $ userID es '101' en su caso. La llamada a render() trataría de cargar el archivo siguiente:

app/views/formas/homepage/101.ctp

Desde ese archivo no existe, no pasa nada.

Cuestiones relacionadas