如何确定ZF2控制器动作phtml的路径

时间:2017-02-02 09:45:57

标签: zend-framework2

有一个控制器:

module/ModuleName/src/ModuleName/Controller/SubFolder/ControllerNameController
行动:
doSomethingAction()
在module.config.php中:

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

在我的一个项目中,ZF2搜索.phtml文件,如下所示:

view/module-name/sub-folder/controller-name/do-something.phtml
这对我来说没问题。

但在另一个项目中,ZF2搜索.phtml文件,如下所示:

view/module-name/controller-name/do-something.phtml
这对我来说不合适,因为控制器名称在模块中必须是唯一的。

这种行为的原因在哪里?

为什么ZF2会忽略该文件夹?

2 个答案:

答案 0 :(得分:0)

这可能是由于使用不同版本的ZF2的两个不同项目。我猜想视图模板路径中包含子文件夹的项目是ZF2 post 2.3.2的版本,而不包含它的项目是2.3.2之前的版本。

您可以在此处查看拉取请求:https://github.com/zendframework/zendframework/pull/5670

如果您正在运行2.3.2之前的应用程序,我建议您将ZF2依赖关系更新为最新的稳定版本

在这个拉动请求中合并了一些重大变化,我认为这是ZF3的一部分:

https://github.com/zendframework/zend-mvc/pull/139

如果您已经在使用更高版本的框架

,这可能会有用

答案 1 :(得分:0)

谢谢。这是路线中缺少的__NAMESPACE__变量。