我得到了一个404控制器找不到,我很难调试它。
在Zendzf2中,我将在哪里调试,看看它实际上在寻找什么控制器?
错误为:
出现404错误找不到页面。
请求的控制器无法映射到现有的控制器类。
控制器:找不到(解析为无效的控制器类或别名:找不到)
无异常可用
所以我的问题不是让你找到我的问题,而是帮助m3找到我可以在ZEND中放置断点的地方——帮助我学会调试ZEND正在做的事情。
在服务管理器、侦听器、自动加载器和工厂等之间……我发现ZEND非常复杂,以至于我不知道在哪里放置断点,也不知道发生了什么——在这种情况下,它试图打开什么控制器。
"授人以渔,不授人以鱼"。
感谢
对于这个问题,我认为您不能使用断点。因为它在操作开始前出错,所以找不到控制器。
当我面对这个问题时,我的解决方案。
- 检查控制器文件是否在文件、类定义和命名空间中都有正确的名称
- 检查module.config文件中的路由和控制器定义
- 如果您没有使用自动加载器,请检查类映射文件
在您的一条路线中,您使用的控制器不是在module.config.php 中的"controllers"键下定义的
例如,在该路由中有一个控制器"Application''controller''Index":
'routes' => array(
'home' => array(
'type' => 'Zend'Mvc'Router'Http'Literal',
'options' => array(
'route' => '/',
'defaults' => array(
'controller' => 'Application'Controller'Index',
'action' => 'index',
),
),
),
您必须创建一个控制器条目:
'controllers' => array(
'invokables' => array(
'Application'Controller'Index' => 'Application'Controller'IndexController'
),
),