在ZF1我们使用的部分在layout.phtml文件类似的东西
$this->partial('header.phtml', array('vr' => 'zf2'));
我们怎样才能做到在ZF2一样吗?
在ZF1我们使用的部分在layout.phtml文件类似的东西
$this->partial('header.phtml', array('vr' => 'zf2'));
我们怎样才能做到在ZF2一样吗?
这可以通过以下方式实现
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',
),
),
);
作为接受的答案已经指出,你可以使用
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'));