Désactiver le layout et/ou la vue dans un controlleur dans Zend Framework

Pour désactiver le layout et/ou le script de vue, il faut rajouter ce code-là dans la méthode de l’action OU bien dans le méthode preDispatch (héritée de Zend_Controller)

// 1. Il est possible de désactiver le layout et la vue
//    dans le constructeur
public function monControlleur() {
    $this->_helper->layout()->disableLayout();
    $this->_helper->viewRenderer->setNoRender(true);
}
// 2. Les désactiver dans la méthode preDispatch qui
//    est apellée avant la méthode d'action
public function preDispatch() {
 $this->_helper->layout()->disableLayout();
 $this->_helper->viewRenderer->setNoRender(true);
}

// 3. Pour une action spécifique, on peut désactiver la
//    vue mais pas le layout
public function monAction() {
    $this->_helper->viewRenderer->setNoRender(true);
}

C’est utile si vous voulez utiliser vos actions dans des requêtes ajax ou bien pour retourner des données en format JSON (api mode).

Laisser un commentaire

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