如何使用zendframework2部分(How to use the partial in zen

2019-07-31 06:01发布

在ZF1我们使用的部分在layout.phtml文件类似的东西

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

我们怎样才能做到在ZF2一样吗?

Answer 1:

这可以通过以下方式实现

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

您可以通过访问变量视图中

echo $this->vr;

不要忘记添加以下在module.config.php文件的view_manager线。

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

加入后,它看起来像这样

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',
        ),


    ),    

);


Answer 2:

作为接受的答案已经指出,你可以使用

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

但你必须定义layout/header在你的module.config.php。


如果你不想搞乱你的template_map ,您可以使用基于相对路径template_path_stack直接指向你的部分。

假设你定义:

'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',
        ),
    ),    
);

在module.config.php和你listsnippet.phtml在于.../view/mycontroller/snippets/listsnippet.phtml ,那么你可以使用下面的代码:

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


文章来源: How to use the partial in zendframework2