[ZF2] Désactiver le layout et la vue

On me demande régulièrement comment désactiver le layout et/ou le rendu de la vue dans zend framework 2. Peut être voulez-vous faire une requette AJAX ou encore un Service REST, peut importe, la solution ci-dessous !

Pour désactiver la vue il faut que votre action retourne un objet de réponse vide. Je ne vais pas entrer dans les détails, mais retenez que la phase de rendu est court-circuité. Le fait de désactiver la vue désactive automatiquement le layout (pas de vue signifie implicitement que le layout n’est pas rendu non plus). Votre action doit donc ce terminer par :

 

La désactivation du layout est prévue dans l’objet de vue. Il vous faut donc instancier manuellement une vue, passer vos variables à l’aide la méthode setVariables, dire à la vue de terminer le processus de rendu de vue une fois que la vue de l’action est terminer (c’est-à-dire ne pas injecter la vue courante dans le layout) avec setTerminal(true), puis terminer votre action en retournant l’objet de vu créer manuellement.

Du code valant mieux qu’un long discoure, voici ce à quoi doit ressembler votre vue.

 

Si vous avez des questions, n’hésitez pas à les poster en commentaire.

 

 

Tags:, ,

Ajouter un commentaire

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