Zend Framework : spécifier explicitement une vue à un controlleur

Si vous voulez spécifier une vue autre que la vue par défaut pour un controlleur, il y a plusieurs façons de le faire :

  • $this->render('autre') (si le script est dans le même dossier de vues du controlleur).
  • $this->renderScript('mon-controlleur/autre.phtml')
  • $this->_helper->viewRenderer->setRender('autre');
  • $this->_helper->viewRenderer('existing'); (équivalent à setRender)

Cependant, il faut noter que les deux méthodes render affichent le résultat directement alors que viewRenderer ne fait que désigner la vue et diffère l’affichage.

Si vous utilisez render et que vous affectez ensuite une variable à la vue, la vue n’en tiendra pas compte :

$this->render("autre");
// Rend immédiatement

$this->view->var = "Variable importante";
// Va être ignorée car la vue a été déjà affichée

 

Alors que viewRenderer ne fait que désigner le script de vue :

$this->_helper->viewRenderer("autre");
// Diffère l'affichage

$this->view->var = "Variable importante";
// Cette variable sera prise en compte

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *