【问题标题】:codeigniter 2.0 Fatal error: Class 'Controller' not found incodeigniter 2.0 致命错误:找不到类“控制器”
【发布时间】:2011-01-30 21:57:05
【问题描述】:

我已经下载了新的 codeigniter 2.0 并将我的控制器、模型和视图文件放入新的 codeigniter 2.0 安装中。但我得到了这个错误

致命错误:在第 3 行的 /Applications/MAMP/htdocs/site/application/controllers/forside.php 中找不到类“控制器”

我做错了什么?它适用于旧的 codeigniter 版本,但适用于新版本.. 不:S

希望有人能帮帮我

【问题讨论】:

标签: class codeigniter download controller version


【解决方案1】:

在 CodeIgniter 2 中,您的控制器继承自超类 CI_Controller,而不是 CodeIgniter 1 中使用的超类 Controller

这同样适用于 CI2 中扩展类 CI_Model 而不是 Model 的模型。

【讨论】:

  • 让它不酷我已经编辑了我所有的文件:(,我现在不能让我的项目工作,有很多错误..和encryption_key Wtf:p
  • 是的..它奏效了。里面的构造函数类也应该是 function __construct() { // 调用构造函数 parent::__construct(); } codeigniter.com/forums/viewthread/159834/#769301
  • 大多数第一次使用 CI 的人可能都会遇到这个错误,因为它在 CI 介绍/教程视频中codeigniter.com/tutorials/watch/intro
【解决方案2】:

我认为您没有像下面那样扩展控制器;

<?php
class MyOwnController extends CI_Controller {

    function index()
    {
        // your code here
    }
}
?>

写在http://codeigniter.com/user_guide/general/controllers.html,你要扩展CI_Controller

【讨论】:

  • 我的 url 不起作用知道 localhost:8888/site/nyheder 只是说“在此服务器上找不到请求的 URL /site/nyheder。”
  • 添加“index.php”是否有效?我不确定你的目录结构,所以也用这些链接进行测试; localhost:8888/index.php/site/nyheaderlocalhost:8888/site/index.php/nyheader
  • 我遇到了同样的问题,但现在它只是切换到Fatal error: Class 'CI_Controller' not found in /home2/mysharedservername/public_html/myappname/system/application/controllers/investor_browse.php on line 7 而不是Class 'Controller' not found。使用 Bluehost。
  • @Sjmon 您可以使用 Notepad++ 一次性重命名,在 Notepad++ 上打开所有控制器,当在“查找和替换”对话框中时,在所有打开的文档上单击“替换”
【解决方案3】:

除了控制器的 CI_ 前缀外,您扩展的任何核心类都应该放在 applications/core/ 文件夹中。这是因为核心 CodeIgniter 类已移至 system/core/ 文件夹。

【讨论】:

  • 这是否包括扩展Controller 基类?在前两个视频教程中,他们说在他们的示例中使用 Class Blog 扩展它,并且不要修改 ~/applications/core。
【解决方案4】:
class Student extends CI_Controller {

  function Student()   {
    parent::__construct(); 

    // load helpers
    $this->load->helper('url');
  }
}

包括parent::__construct(); 而不是parent::Controller();

【讨论】:

    【解决方案5】:

    确保控制器的名称与配置中定义的前缀匹配:

    默认情况下,配置有:

    $config['subclass_prefix'] = 'MY_';
    

    如果你的控制器是core/SomeController.php,它不会被找到,因为它不是以MY_开头的

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-19
      • 2015-07-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-29
      • 2013-11-04
      • 2013-02-18
      相关资源
      最近更新 更多