11

对于模块内的目录结构,我有类似的东西:

Api
├── Module.php
├── config
│   └── module.config.php
├── src
│   └── ( ..etc ..)
└── view
    ├── api
    │   └── api
    │       └── index.phtml
    └── partial
            └── test.phtml

然后,我这样做:

<?= $this->partial('partial/test.pthml', array()); ?>

但是,我得到:

2012 年 6 月 5 日 14:56:58] PHP 致命错误:未捕获的异常 'Zend\View\Exception\RuntimeException' 带有消息 'Zend\View\Renderer\PhpRenderer::render: Unable to render template "partial/test.pthml "; 解析器无法解析到 /Users/jeff/web/n/vendor/zendframework/zendframework/library/Zend/View/Renderer/PhpRenderer.php:463 中的文件

我的部分应该去哪里?

4

2 回答 2

22

这可以通过

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


    ),    

);
于 2012-08-29T14:44:46.993 回答
-1

您是否尝试在调用 View Helper partial() 时包含您的模块名称?

http://packages.zendframework.com/docs/latest/manual/en/zend.view.helpers.html#zend.view.helpers.initial.partial.modules

<?php echo $this->partial('pager.phtml', 'list', $pagerData) ?>
于 2012-06-05T22:21:55.130 回答