CodeIgniter 3.1.7 - Class' MY_Controller'仅在我的服务器

时间:2018-02-23 16:04:53

标签: php codeigniter

我收到以下错误:

  

致命错误: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上开发网站时,我没有遇到此问题。此错误仅发生在我的服务器上。

我试图谷歌寻求解决方案,但我没有找到任何有用的东西。

它出了什么问题?非常感谢。

3 个答案:

答案 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帖子用一种自动加载的首选方式向我大喊,这非常简单明了。