我收到以下错误:
致命错误:Class' MY_Controller'找不到 第3行的/www/panel/application/controllers/Posts.php
遇到严重错误
的PHP错误消息:Class' MY_Controller'找不到
文件名:controllers / Posts.php
行号:3
回溯:
subclass_prefix config是:
$config['subclass_prefix'] = 'MY_';
MY_Controller.php放在application / core上,文件名拼写正确:MY_Controller.php
当我在localhost上开发网站时,我没有遇到此问题。此错误仅发生在我的服务器上。
我试图谷歌寻求解决方案,但我没有找到任何有用的东西。
它出了什么问题?非常感谢。
答案 0 :(得分:1)
控制器Posts
似乎正在扩展MY_Controller
,这是一种有效的方法,但由于CI搜索类文件的方式,CodeIgniter很难处理。
有很多方法可以完成这项工作。可以找到对各种方法的良好描述和讨论HERE。
最简单的解决方案是明确包含MY_Controller
文件。
include_once(APPPATH.'core/MY_Controller.php');
class Posts extends MY_Controller {
我的偏好是使用钩子注入自动加载功能。如果您想查看详情,请告诉我。上面提供的链接也显示了这个解决方案。
答案 1 :(得分:0)
检查文件名和类名是否都是相同的情况:"我的" vs" my" vs" MY",并匹配您的配置。
不同的文件系统以不同的方式处理文件名中的区分大小写,这可能会导致在localhost上与其他服务器相关的问题。
答案 2 :(得分:0)
怪我的痛苦!
以防万一,这就是我的解决方法-我错误地将MY_Controller
文件放在错误的目录中。将其放入/application/core
内可修复此可怕的错误。
我也迷失在这个迷宫中,浪费了宝贵的时间,而CI文档和SO帖子用一种自动加载的首选方式向我大喊,这非常简单明了。