无法呈现模板

Unable to render template

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

Zend\View\Renderer\PhpRenderer::render: Unable to render template "admin/categories/form.phtml"; resolver could not resolve to a file

在我的控制器中我有

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 找不到我的模板文件?

非常感谢。

尝试替换

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

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

或添加

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

我终于知道是怎么回事了。 PhpRenderer 没有来自 module_config 文件的路径。我必须从服务经理那里得到 PhpRenderer。

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

一旦我这样做了,模板就找到了并且呈现得很好。