php cakephp cakephp-3.0

$ this-> set(''title'', ''Title Name''); no funciona en CakePHP 3.x



cakephp-3.0 (3)

fetch() devuelve el contenido de un bloque, no una variable. El uso de set() en su controlador está configurando una variable que se puede generar en sus plantillas de visualización haciendo eco de la variable: -

<?php echo $title; ?>

Si desea usar fetch() , debe usarlo en combinación con assign() en las plantillas de Vista para definir el bloque. Por ejemplo, en su plantilla de vista use:

<?php $this->assign(''title'', $title); ?>

Y luego en la plantilla de diseño: -

<title><?php echo $this->fetch(''title''); ?></title>

En CakePHP 3 la idea es establecer el título de la página asignándola en la Vista en lo que se refiere a la representación de la página. Esto difiere de cómo se manejó originalmente en CakePHP 2, donde definirías title_for_layout en tu controlador y luego $title_for_layout eco de la variable $title_for_layout en la plantilla de diseño (esto quedó obsoleto a favor del enfoque CakePHP 3 en las versiones posteriores de Cake 2).

Básicamente en default.ctp Tengo esto para mi título:

<title> <?= $this->fetch(''title'') ?> </title>

Y dentro del controlador tengo esta línea:

$this->set(''title'', ''Test-Title'');

Pero no hace nada, todavía muestra el nombre de los controladores (Trabajos, nombre completo de los controladores, JobsController.ctp)

Pero si pongo esto dentro de mi archivo de vista:

$this->assign(''title'', ''Test-Title'');

Cambia el título. Entonces, ¿qué hay de malo con $ this-> set (''title'', $ title) ?


Solo para completarlo, encontré una situación en la que un script .js malformado con variables indefinidas referenciadas entre <head></head> daba como resultado que las etiquetas <title></title> se publicaran en DOM (mostradas en el origen de la página) pero Chrome , Firefox y (desde la memoria) MSIE no pudo entregar el contenido del título a la interfaz de usuario de la aplicación, nuevamente desde la memoria: el dispositivo móvil iOS no se vio afectado.