Php CodeIgniter 3.1.7-等级';MY#u控制器';“未找到”错误仅在我的服务器上发生
我得到了以下错误: 致命错误:在中找不到类“MY_Controller” /www/panel/application/controllers/Posts.php第3行 遇到PHP错误严重性:错误 消息:找不到类“MY_Controller” 文件名:controllers/Posts.php 行号:3 回溯: 子类_前缀配置为:Php CodeIgniter 3.1.7-等级';MY#u控制器';“未找到”错误仅在我的服务器上发生,php,codeigniter,Php,Codeigniter,我得到了以下错误: 致命错误:在中找不到类“MY_Controller” /www/panel/application/controllers/Posts.php第3行 遇到PHP错误严重性:错误 消息:找不到类“MY_Controller” 文件名:controllers/Posts.php 行号:3 回溯: 子类_前缀配置为: $config['subclass_prefix'] = 'MY_'; MY_Controller.php放在application/core上,文件名拼写正确:M
$config['subclass_prefix'] = 'MY_';
MY_Controller.php放在application/core上,文件名拼写正确:MY_Controller.php
我在localhost上开发站点时没有这个问题。此错误仅发生在我的服务器上
我试着在谷歌上搜索解决方案,但没有找到任何有用的
出了什么问题?提前非常感谢。检查文件名和类名是否都是相同的大小写:“My”vs“My”vs“My”,并匹配您的配置
不同的文件系统以不同的方式处理文件名中的大小写敏感度,这可能会导致本地主机与其他服务器上的工作出现问题。控制器
Posts
似乎正在扩展MY_控制器
,这是一种有效的方法,但CodeIgniter很难处理,因为CI搜索类文件的方式
有许多方法可以使这项工作。可以找到对各种方法的良好描述和讨论
最简单的解决方案是显式地包含myu控制器
文件
include_once(APPPATH.'core/MY_Controller.php');
class Posts extends MY_Controller {
我更喜欢使用钩子注入自动加载函数。如果你想了解详情,请告诉我。上面提供的链接也显示了此解决方案。请将我的痛苦归咎于我
为了以防万一,我就是这样解决的——我错误地将MY_Controller
文件放在了错误的目录中。将其放入/application/core
中修复了这个可怕的错误
我也陷入了这个迷宫,浪费了宝贵的时间,而CI文档和其他帖子却对我大喊大叫,告诉我自动加载它的首选方法,这非常简单明了。你得到的确切错误是什么?我已经在我的问题中更新了它。请检查它。类
类MY_Controller扩展CI_Controller{}
是正确的吗?我检查了文件名和类名都是同一个大小写。如果它只是MY_Controller
,而您在/core
中没有任何其他控制器,那么您甚至不必进行包含。甚至你的链接也显示了这一点(方式0)。我也这样做,不需要包含任何内容。当你有更多的base
控制器时,它会变得更复杂。