3.5.3.1 Interaction avec les Vues

3.5.3.1.1 set

set(string $variable, mixed $valeur)
  1. 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>

?>
  1. <?php
  2. // Dans un premier temps vous passez les données depuis le contrôleur :
  3. $this->set('couleur', 'rose');
  4. // Ensuite vous pouvez les utiliser dans la vue de cette manière :
  5. <p>Vous avez sélectionné un glaçage <?php echo $couleur; ?> pour le gâteau.</p>
  6. ?>

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);  

?>
  1. <?php
  2. $data = array(
  3. 'couleur' => 'rose',
  4. 'type' => 'sucré',
  5. 'prix_de_base' => 23.95
  6. );
  7. //rend $couleur, $type, and $prixDeBase
  8. //disponibles dans la vue:
  9. $this->set($data);
  10. ?>

3.5.3.1.2 render

render(string $action, string $layout, string $fichier)
  1. 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.