2009-07-02 5 views
6

Existe-t-il une autre commande pour rediriger un contrôleur vers une autre page d'affichage autre que la redirection et le rendu?Quelle est la différence entre rediriger et rendre dans CakePHP?

J'ai la redirection comme

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

Mais si je donne

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

qu'il ne soit pas redirigés vers cette page.

Quelque chose ne va pas?

Répondre

12

L'appel à redirect() émet un HTTP redirect. Rien ne se passe après la redirection car CakePHP s'arrête simplement. Tout ce que vous mettez après l'appel de redirection ne sera pas exécuté. Au lieu de cela, le navigateur envoie simplement un nouveau HTTP GET à l'URL vers laquelle vous redirigez.

L'appel à render() charge simplement une vue. Il prend un chemin vers une vue, pas une URL. Cela ne redirige pas. Supposons que $ userID soit '101' dans votre cas. L'appel à rendre() tenterait de charger le fichier suivant:

app/views/formes/page d'accueil/101.ctp

Depuis ce fichier n'existe pas, rien ne se passe.

Questions connexes