3.5.3.1 Interactuando con Vistas
3.5.3.1.1 set
set(string $variable, mixed $valor)
El método set() es la principal manera de enviar datos desde tu controlador a tu vista (view). Una vez que has utilizado set(), la variable puede ser accedida en tu vista.
<?php
// Primero pasas datos desde el controlador:
$this->set('color', 'azul');
// Despueś, en las vista, puedes utilizar el dato:
?>
Has seleccionado <?php echo $color; ?>ar la tarta.
<?php// Primero pasas datos desde el controlador:$this->set('color', 'azul');// Despueś, en las vista, puedes utilizar el dato:?>Has seleccionado <?php echo $color; ?>ar la tarta.
El método set() también toma una array asociativo como primer parámetro. A menudo, esto puede ser una manera rápida de asignar un conjunto de información a la vista.
Las claves (keys) serán flexionadas (inflected) antes de ser asignadas a la vista ('clave_con_subrayado' se convierte en 'claveConSubrayado', etc.):
<?php
$data = array(
'color' => 'pink',
'type' => 'sugar',
'base_price' => 23.95
);
// hace que $color, $type, y $basePrice
// estén disponibles a la vista:
$this->set($data);
?>
<?php$data = array('color' => 'pink','type' => 'sugar','base_price' => 23.95);// hace que $color, $type, y $basePrice// estén disponibles a la vista:$this->set($data);?>
3.5.3.1.2 render
render(string $action, string $layout, string $file)
El método render() es llamado automáticamente al final de cada acción de controlador pedida. Este método lleva a cabo toda la lógica de la vista (usando los datos que has cedido con el método set()), coloca la vista (view) dentro de su diseño (layout) y lo sirve de vuelta al usuario final.
El fichero de vista por defecto utilizado por render es determinado por convención. Por ejemplo, si se pide la acción search() del controlador RecipesController, será renderizado el fichero de vista en /app/views/recipes/search.ctp.
A pesar de que CakePHP lo llamará automáticamente (a menos que hayas establecido $this->autoRender a falso) después de cada lógica de las acciones, puedes utilizar render para especificar un fichero de vista alternativo indicando un nombre de acción en el controlador usando $action. También puedes especificar un fichero de vista alternativo usando el tercer parámetro, $file. Cuando estés usando $file, no olvides utilizar unas pocas de las constantes globales de CakePHP (como VIEWS).
El parámetro $layout te permite especificar el diseño en el que la vista es renderizada.
