zend 2:无法渲染模板...解析器无法解析为文件

red*_*888 3 zend-framework2

我正在通过zend 2入门教程,我撞墙了.我正在教程中我的动作控制器通过indexAction()加载视图:

public function indexAction() {
    return new ViewModel(array(
        //$albums inside index.phtml will contain data from this method
        'albums' => $this->getAlbumTable()->fetchAll()
    ));
}
Run Code Online (Sandbox Code Playgroud)

但是在加载页面时我看到了这个错误:

Zend\View\Renderer\PhpRenderer::render: Unable to render template "album/album/index"; resolver could not resolve to a file
Run Code Online (Sandbox Code Playgroud)

在这一点上,我意识到我不知道到底发生了什么.我甚至不知道从哪里开始排除此错误.在我扫描所有文件的拼写错误之前,我真的很想了解这个错误是如何发生的.

这是我的modul.config.php:

<?php
return array(
    'controllers' => array(
        'invokables' => array(
            'Album\Controller\Album' => 
            'Album\Controller\AlbumController',
        ),
    ),

    'router' => array(
        'routes' => array(
            'album' => array(
                'type' => 'segment',
                'options' => array(
                    'route' => '/album[/:action][/:id]',
                    'constraints' => array(
                        'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
                        'id' => '[0-9]+',
                    ),
                    'defaults' => array(
                        'controller' => 'Album\Controller\Album',
                        'action' => 'index',
                    ),
                ),
            ),
        ),
    ),

    'view_manager' => array(
        'template_path_stack' => array(
            'ablum' => __DIR__ . '/../view',
        ),
    ),
);
Run Code Online (Sandbox Code Playgroud)

小智 9

错误"无法呈现模板"相册/相册/索引"意味着您必须在"相册"模块目录index.phtml下的/album/album目录下添加该文件view.index.phtml视图模板文件用于呈现控制器index操作的视图AlbumControllerAlbum模块.由于此文件似乎缺少,视图模板解析器找不到它.

在Zend Framework 2中,您将视图实现为模板文件,该文件具有.phtml扩展名("phtml"代表PHP + HTML).视图模板具有这样的名称,因为它们通常包含与用于呈现网页的PHP代码片段混合的HTML代码.视图通常位于模块的view子目录中.

对于初学者,我建议阅读Using Zend Framework 2一书.通过这本电子书,您可以节省学习ZF2的时间和精力.