我想按照以下方式构建我的项目:
MyModule/src/MyModule/Controller/TestController.php
MyModule/src/MyModule/Controller/Admin/TestController.php
问题是,两个控制器都会查找视图文件 mymodule / test.phtml ,因为目录 Admin 无关紧要。有没有办法处理目录而不在每个控制器操作中手动写下它?
我想像这样构建它:
MyModule/src/MyModule/Controller/TestController.php => view/mymodule/test.phtml
MyModule/src/MyModule/Controller/Admin/TestController.php => view/mymodule/admin/test.phtml
或许有人有想法以其他方式构建它?
由于
答案 0 :(得分:0)
我之前在之前的项目中看到过这种情况。很确定你可以在module.config.php文件中配置它,可能是这样的:
// View file paths
'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(
'MyModule/Admin/Test' => __DIR__ . '/../view/mymodule/admin/test.phtml'
)
)
确保路径正确无误。但是,您可以只拥有一个管理模块,并让所有管理员控制器驻留在那里,您不必担心您现在对视图文件的控制器/管理员问题。然后,所有其他模块都可以扩展,使用DI或服务mgr从Admin模块获得所需的内容。
答案 1 :(得分:0)
您可以使用自己的模板注入器覆盖默认模板注入器,您可以在其中指定将解析管理控制器的模板路径的逻辑。
通过示例
查看我的博客文章,深入介绍此主题