Cómo usar el parcial en zendframework2

En ZF1 utilizamos parcial en el archivo layout.phtml algo así

$this->partial('header.phtml', array('vr' => 'zf2')); 

¿Cómo podemos hacer lo mismo en ZF2?

Solutions Collecting From Web of "Cómo usar el parcial en zendframework2"

esto se puede lograr

  echo $this->partial('layout/header', array('vr' => 'zf2')); 

puede acceder a la variable en vista usando

 echo $this->vr; 

no olvide agregar la siguiente línea en su view_manager del archivo module.config.php.

 'layout/header' => __DIR__ . '/../view/layout/header.phtml', 

después de agregar, se ve así

 return array( 'view_manager' => array( 'template_path_stack' => array( 'user' => __DIR__ . '/../view' , ), 'display_not_found_reason' => true, 'display_exceptions' => true, 'doctype' => 'HTML5', 'not_found_template' => 'error/404', 'exception_template' => 'error/index', 'template_map' => array( 'layout/layout' => __DIR__ . '/../view/layout/layout.phtml', 'layout/header' => __DIR__ . '/../view/layout/header.phtml', 'error/404' => __DIR__ . '/../view/error/404.phtml', 'error/index' => __DIR__ . '/../view/error/index.phtml', ), ), ); 

Como ya se indicó en la respuesta aceptada, puede usar

 echo $this->partial('layout/header', array('vr' => 'zf2')); 

pero luego debe definir el layout/header en su module.config.php.


Si no desea saturar su template_map , puede usar una ruta relativa basada en template_path_stack para apuntar directamente a su parcial.

Supongamos que ha definido:

 'view_manager' => array( /* [...] */ 'template_path_stack' => array( 'user' => __DIR__ . '/../view' , ), 'template_map' => array( 'layout/layout' => __DIR__ . '/../view/layout/layout.phtml', 'error/404' => __DIR__ . '/../view/error/404.phtml', 'error/index' => __DIR__ . '/../view/error/index.phtml', ), ), ); 

en su module.config.php y su listsnippet.phtml se encuentra en .../view/mycontroller/snippets/listsnippet.phtml , entonces puede usar el siguiente código:

 echo $this->partial('mycontroller/snippets/listsnippet.phtml', array('key' => 'value'));