我正在尝试将表单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找不到我的模板文件?
非常感谢提前。
答案 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();
一旦我这样做,模板就被定位并呈现得很好。