3.5.3.1 Interaction avec les Vues
3.5.3.1.1 set
set(string $variable, mixed $valeur)
set(string $variable, mixed $valeur)
La méthode set() est la voie principale utilisée pour transmettre des données de votre contrôleur à votre vue. Une fois set() utilisée, la variable de votre contrôleur devient accessible par la vue.
<?php
// Dans un premier temps vous passez les données depuis le contrôleur :
$this->set('couleur', 'rose');
// Ensuite vous pouvez les utiliser dans la vue de cette manière :
<p>Vous avez sélectionné un glaçage <?php echo $couleur; ?> pour le gâteau.</p>
?>
<?php// Dans un premier temps vous passez les données depuis le contrôleur :$this->set('couleur', 'rose');// Ensuite vous pouvez les utiliser dans la vue de cette manière :<p>Vous avez sélectionné un glaçage <?php echo $couleur; ?> pour le gâteau.</p>?>
La méthode set() peut également prendre un tableau associatif comme premier paramètre. Cela peut souvent être une manière rapide d'affecter en une seule fois un jeu complet d'informations à la vue. Notez que les clefs de votre tableau seront infléchies avant d'être assignées à la vue (‘clef_avec_underscore’ devient ‘clefAvecUnderscore’, etc.).
<?php
$data = array(
'couleur' => 'rose',
'type' => 'sucré',
'prix_de_base' => 23.95
);
//rend $couleur, $type, and $prixDeBase
//disponibles dans la vue:
$this->set($data);
?>
<?php$data = array('couleur' => 'rose','type' => 'sucré','prix_de_base' => 23.95);//rend $couleur, $type, and $prixDeBase//disponibles dans la vue:$this->set($data);?>
3.5.3.1.2 render
render(string $action, string $layout, string $fichier)
render(string $action, string $layout, string $fichier)
La méthode render() est automatiquement appelée à la fin de chaque action exécutée par le contrôleur. Cette méthode exécute toute la logique liée à la présentation (en utilisant les variables transmises via la méthode "set()"), replace le contenu de la vue à l'intérieur de sa mise en page et transmet le tout à l'utilisateur final.
Le fichier de vue utilisé par défaut est déterminé par convention. Ainsi, si l'action rechercher() de notre contrôleur Recettes est demandée, le fichier de vue situé dans /app/view/recettes/rechercher.php sera utilisé.
Bien que CakePHP appellera la fonction render() automatiquement à la fin de chaque action (à moins que vous n'ayez défini $this->autoRender à false), vous pouvez l'utiliser pour spécifier un fichier de vue alternatif en précisant le nom d'une action dans le contrôleur, via le paramètre $action. Vous pouvez également spécifier un fichier alternatif en utilisant le troisième paramètre $file. Quant vous utilisez $file, n'oubliez pas d'utiliser les constantes de CakePHP (comme VIEWS) pour spécifier le chemin et ainsi rendre votre code plus générique.
Le second paramètre $layout vous permet de spécifier la fichier de mise en page qui sera utilisée pour afficher la vue.
