CakePHP 2 : récupérer le code HTML d’une vue dans une action

27 Fév 2012 2 ,

Pour une raison x ou y, vous souhaitez récupérer le code HTML d’un template donné. Ca peut s’avérer pratique pour envoyer un template complet formaté en JSON via AJAX. N’ayant trouvé que peu de doc sur le sujet, je vous livre ici une solution :

[php] public function fragment() {
// Assignation de vos données
$this -> set(‘datas’, $vos_donnees);

// Appel d’un élément particulier (facultatif)
$this -> render(‘/Elements/datas_fragment’);

// Récupération du code HTML généré par l’appel à render()
$view = $this -> View -> output;

debug($view);
exit;
}
[/php]

Ici il vous faudra un élément datas_fragment.ctp mais vous pouvez également utiliser le template par défault en appelant render() sans paramètre. Ainsi, vous pouvez récupérer le code HTML qui sera renvoyé par la Vue. Cela peut être pratique pour envoyer du code HTML en AJAX.