Como asignar una plantilla a una vista específica en CakePHP

Asignar plantilla a vista en CakePHP


Introducción


Para asignar la plantilla que queremos utilizar en una vista lo que debemos hacer es utilizar la función setLayout, asignándole como parámetro el nombre de la plantilla. Esto lo hacemos dentro de la acción del controlador que renderiza la vista.

CakePHP espera por defecto que las plantillas se encuentren en la ruta:

src/Template/Layout/

   (Cake Software Foundation, Inc, 2019)

Las plantillas en CakePHP tienen extensión .ctp , nuestra plantilla de prueba se llamará principal.ctp, por lo que la ruta final será:

src/Template/Layout/principal.ctp

Ahora veamos el código.

Código

<?php
// Dentro del controlador, escogemos la acción que renderiza la vista
// a la cual le queremos asignar la plantilla
// En nuestro caso la acción se llama accionDePrueba
public function accionDePrueba()
{
    // Aquí asignamos la plantilla de nombre principal como parámetro 
    // de la función setLayout
    $this->viewBuilder()->setLayout('principal');

    //resto del código ...

}

Si estamos utilizando un versión de CakePHP anterior a la 3.4 el código es así:
<?php
// Dentro del controlador, escogemos la acción que renderiza la vista 
//a la cual le queremos asignar la plantilla
//En nuestro caso la acción se llama accionDePrueba
public function accionDePrueba()
{
    // Aquí asignamos la plantilla de nombre principal como parámetro 
    //de la función setLayout
    $this->viewBuilder()->layout('principal');

    //resto del código ...

}

Si estamos utilizando un versión de CakePHP anterior a la 3.1 el código es así:
<?php
// Dentro del controlador, escogemos la acción que renderiza la vista 
// a la cual le queremos asignar la plantilla
//En nuestro caso la acción se llama accionDePrueba
public function accionDePrueba()
{
    // Aquí asignamos la plantilla de nombre principal como parámetro 
    // de la función setLayout
    $this->layout = 'principal';

    //resto del código ...

}

   (Cake Software Foundation, Inc, 2019)

Nota: Al momento de escribir esta entrada CakePHP se encuentra en su versión 3.7.

Referencias

Cake Software Foundation, Inc. (9 de Febrero de 2019). Layouts. Recuperado el 10 de Febrero de 2019, de CakePHP: https://book.cakephp.org/3.0/en/views.html#layouts


Atribuciones de diseño

Icono de pastel obtenido de Vector illustration credit: www.Vecteezy.com

Comentarios