Zend \ View \ Renderer \ PhpRenderer :: render:无法呈现模板,解析器无法解析为文件

时间:2016-07-09 04:53:25

标签: php zend-framework2

我是这个框架的新手,在渲染视图时遇到了麻烦。这是我的代码。我正在关注此网站http://zf2.readthedocs.io/en/latest/in-depth-guide/first-module.html的教程。我真的被困在这里所有我得到的是一遍又一遍的同样的错误。感谢

module.config.php

 return array(
 // This lines opens the configuration for the RouteManager
'view_manager' => array(
    'template_path_stack' => array(
        __DIR__ . '/../view',
        ),
    ),
 'controllers' => array(
     'invokables' => array(
         'Blog\Controller\List' => 'Blog\Controller\ListController'
     )
 ),
 'router' => array(
     // Open configuration for all possible routes
     'routes' => array(
         // Define a new route called "post"
         'post' => array(
             // Define the routes type to be "Zend\Mvc\Router\Http\Literal", which is basically just a string
             'type' => 'literal',
             // Configure the route itself
             'options' => array(
                 // Listen to "/blog" as uri
                 'route'    => '/blog',
                 // Define default controller and action to be called when this route is matched
                 'defaults' => array(
                     'controller' => 'Blog\Controller\List',
                     'action'     => 'index',
                 )
             )
         )
     )
 ),

);

编辑:

  

其他信息:Zend \ View \ Exception \ RuntimeException

     

消息:Zend \ View \ Renderer \ PhpRenderer :: render:无法呈现模板“blog / list / index”;解析器无法解析为文件

module
  Blog
   config
     module.config.php
   src
     Blog
      Controller
       ListController.php
   view
     blog
      list
       index.phtml
   Module.php

关于我的控制器,它只包含此

namespace Blog\Controller;

use Zend\Mvc\Controller\AbstractActionController;

Class ListController extends AbstractActionController
{

}

2 个答案:

答案 0 :(得分:1)

您的视图目录的路径是错误的。您将其设置为__DIR__ . '/../src/view',并将其指向$module/src/view

在您提供的目录树中,视图不在$module/src目录中,而是在$module/view/中。

更新路径应该可以解决问题:

'view_manager' => array(
    'template_path_stack' => array(
        __DIR__ . '/../view',
    ),
),

(注意我删除了src片段。)

答案 1 :(得分:0)

您可以将以下代码用于模块配置文件

的module.config.php
   'view_manager' => array(
        'template_map' => array(
           'layout/blog'           => __DIR__ . '/../view/layout/layout.phtml',
           'blog/list/index' => __DIR__ . '/../view/blog/list/index.phtml',
         ),
        'template_path_stack' => array(
        __DIR__ . '/../view',
        ),
     ),