2009-07-02 15 views
6

Esiste un altro comando per il reindirizzamento di un controller in una pagina di visualizzazione particolare diversa dal reindirizzamento e dal rendering?Qual è la differenza tra reindirizzamento e rendering in CakePHP?

ho il reindirizzamento come

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

Ma se io do

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

non venga reindirizzato a quella pagina.

C'è qualcosa che non va?

risposta

12

La chiamata a reindirizzamento() emette un HTTP redirect. Nulla accade dopo il reindirizzamento perché CakePHP si ferma semplicemente. Tutto ciò che viene inserito dopo la chiamata di reindirizzamento non verrà eseguito. Invece, il browser invia semplicemente un nuovo HTTP GET all'URL a cui stai reindirizzando.

La chiamata a render() carica semplicemente una vista. Prende un percorso per una vista, non un URL. Non reindirizza. Supponiamo che $ userID sia '101' nel tuo caso. La chiamata a render() avrebbe cercato di caricare il seguente file:

app/views/forme/homepage/101.ctp

Da quel file non esiste, non succede nulla.

Problemi correlati