3.5.3.1 Interacting with Views
3.5.3.1.1 set
set(string $var, mixed $value)
Il metodo set() è il mezzo principale per inviare dati dal controller alla vista. Una volta usata set(), la variabile potrà essere utilizzata nella vista.
<?php
//First you pass data from the controller:
$this->set('color', 'pink');
//Then, in the view, you can utilize the data:
?>
You have selected <?php echo $color; ?> icing for the cake.
<?php//First you pass data from the controller:$this->set('color', 'pink');//Then, in the view, you can utilize the data:?>You have selected <?php echo $color; ?> icing for the cake.
Il metodo set() utilizza un array associato come primo parametro. Questa può essere spesso utlizzata come modo veloce per assegnare delle informazioni alla vista. Notare che le chiavi dell'array verranno prima flesse prima di essere assegnate alla vista ('underscored_key' diventa 'underscoredKey', etc.):
<?php
$data = array(
'color' => 'pink',
'type' => 'sugar',
'base_price' => 23.95
);
//make $color, $type, and $basePrice
//available to the view:
$this->set($data);
?>
<?php$data = array('color' => 'pink','type' => 'sugar','base_price' => 23.95);//make $color, $type, and $basePrice//available to the view:$this->set($data);?>
3.5.3.1.2 render
render(string $action, string $layout, string $file)
Il metodo render() è chiamato automaticamente alla fine di ogni azione richiesta al controller. Questo metodo esegue tutte le logiche della vista (usando i dati utilizzati nel metodo set()), inserisce le viste nel proprio layout e le restituisce all'utente finale.
La vista di default usata dal render è determinata dalla convenzione. Se l'azione search() del RecipeController viene richiesta, la vista /app/views/recipes/search.ctp sarà restituita.
Sebbene CakePHP automaticamente la chiamerà (a meno che non si è settato $this->autoRender a false) dopo ogni azione logica, è possibile specificare una vista alternativa, specificando un nome di azione nel controller utilizzando $action. E' possibile inoltre un file alternativo di vista usando il terzo parametro, $file. Usando $file, non dimenticare di utilizzare poche costanti globali di CakePHP (come VIEWS).
Il parametro $layout permette di specificare il layout utilizzato dalla vista.
