无法呈现模板

时间:2015-07-12 11:08:23

标签: zend-framework2

我正在尝试将表单html作为json响应发送。我遇到的问题是ZF2找不到表单模板文件。我收到了错误

  

Zend \ View \ Renderer \ PhpRenderer :: render:无法渲染模板" admin / categories / form.phtml&#34 ;;解析器无法解析为文件

在我的控制器中我有

if (!is_null($form)) {
    $renderer = new PhpRenderer;
    $viewModel = new ViewModel();
    $viewModel->form = $form;
    $viewModel->category = $category;
    $viewModel->setTemplate('admin/categories/form.phtml');
    $form = $renderer->render($viewModel);
}

form.phtml文件存在,但正如我所说,ZF2无法找到它。在我的module_config.php中我有

'view_manager' => array(
    'display_not_found_reason' => true,
    'display_exceptions' => true,
    'doctype' => 'HTML5',
    'not_found_template' => 'error/404',
    'exception_template' => 'error/index',
    'template_map' => array(
        'admin/layout' => __DIR__ . '/../view/layout/layout.phtml',
        'error/404' => __DIR__ . '/../view/error/404.phtml',
        'error/index' => __DIR__ . '/../view/error/index.phtml',
    ),
    'template_path_stack' => array(
        'admin' => __DIR__ . '/../view'
    ),
),

有谁知道为什么ZF找不到我的模板文件?

非常感谢提前。

2 个答案:

答案 0 :(得分:0)

尝试替换

'template_path_stack' => array(
    'admin' => __DIR__ . '/../view'
)

'template_path_stack' => array(
    'admin' => __DIR__ . '/../view/admin'
)

或添加

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

答案 1 :(得分:0)

我终于知道发生了什么。 PhpRenderer没有module_config文件中的路径。我必须从服务经理处获得PhpRenderer。

$renderer = $this->getServiceLocator()->get('viewmanager')->getRenderer();

一旦我这样做,模板就被定位并呈现得很好。