ZF2:我在哪里存储partialLoop模板文件?

Gre*_*bes 1 php view zend-framework2

有谁知道在哪里存储ZF2部分循环模板文件?

我将模板存储在标准Zend文件结构下的相关视图文件夹中.这在ZF1下有效.但是在尝试重新编码代码以使用ZF2时,我收到此错误?

Fatal error: Uncaught exception 'Zend\View\Exception\RuntimeException' with message
'Zend\View\Renderer\PhpRenderer::render: Unable to render template
 "listingsPartial.phtml"; resolver could not resolve to a file' in C:\zendProject\zf2\vendor\zendframework\zendframework\library\Zend\View\Renderer\PhpRenderer.php:454 Stack trace: #0 C:\zendProject\zf2\vendor\zendframework\zendframework\library\Zend\View\Helper\Partial.php(73): 
Zend\View\Renderer\PhpRenderer->render('listingsPartial...') #1 C:\zendProject\zf2\vendor\zendframework\zendframework\library\Zend\View\Helper\PartialLoop.php(70): Zend\View\Helper\Partial->__invoke('listingsPartial...', Array) #2 [internal function]: Zend\View\Helper\PartialLoop->__invoke('listingsPartial...', Array) #3 C:\zendProject\zf2\vendor\zendframework\zendframework\library\Zend\View\Renderer\PhpRenderer.php(355): 
 call_user_func_array(Object(Zend\View\Helper\PartialLoop), Array) #4 C:\zendProject\zf2\module\Landlord\view\landlord\home\index.phtml(42): 
 Zend\View\Renderer\PhpRenderer->__call
('p in C:\zendProject\zf2\vendor\zendframework\zendframework\library\Zend\View\Renderer\PhpRenderer.php on line 454
Run Code Online (Sandbox Code Playgroud)

我对部分循环的调用如下所示:

 echo $this->partialLoop('listingsPartial.phtml',$model);
Run Code Online (Sandbox Code Playgroud)

调用它的模板和视图页面存储在同一文件中.我想知道是否需要在某处列出listingPartial模板,即在模块或配置文件中?

我的目录结构如下所示:

> zf2  
   -module   
         -moduleName    
            -view
>              -moduleName
>                 -controllerName
>                     - *the view file and partial template file are stored here-*
Run Code Online (Sandbox Code Playgroud)

任何建议赞赏.

Chr*_*ell 6

作为提供完整合格路径的替代方法 - 这可能很麻烦 - 您可以执行以下两项操作之一:

1)从module.config.php文件中提供模板文件的路径,如下所示

'view_manager' => array(
    'template_path_stack' => array(
        'module' => __DIR__ . '/../view',
        'partial' => __DIR__ . '/../view/moduleName\controllerName'
    ),
)
Run Code Online (Sandbox Code Playgroud)

2)创建一个partial直接在view目录下调用的目录.将所有模板文件放在此目录中.

zf2  
  -module   
     -moduleName    
        -view
          -partial
             - partial template files
          -moduleName
             -controllerName
                 - view files
Run Code Online (Sandbox Code Playgroud)

然后从您的视图脚本调用您的部分循环,如下所示:

echo $this->partialLoop('partial/listingsPartial.phtml',$model);
Run Code Online (Sandbox Code Playgroud)

我赞成选项2,因为它将所有部分文件组织到一个位置.