将CodeIgniter 1.7.2升级到2.1.4会导致致命错误:找不到类'MY_Controller'

时间:2013-08-19 09:33:13

标签: php codeigniter codeigniter-2

我最终决定升级我的CI,我遵循此用户指南 CodeIgniter User Guide Version 2.1.4

但是当我尝试加载我的网页时,我得到的错误就像这样

    Fatal error: Class 'MY_Controller' not found in 
C:\xampp\htdocs\myfolder\system\application\controllers\home.php on line 6

并且在home.php第6行是class Home extends MY_Controller {

我的文件名为My_controller.php

C:\xampp\htdocs\myfolder\system\application\libraries

这是文件:

<?php

class  MY_Controller  extends  Controller {

  var $needLogin = FALSE;
  var $rakunpanel = FALSE;

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

    $isVisited = $this->session->userdata('visited');
    if($isVisited !== '1'){
      $this->session->set_userdata('visited', '1');
      redirect('welcome');
    }

    if($this->rakunpanel === TRUE){
      $this->needLogin = TRUE;
      $this->layout->setLayout('folderAdmin/layout_admin');
    }

    if($this->needLogin === TRUE && !$this->tank_auth->is_logged_in()){
      redirect(ADMIN_PATH.'auth/login/');
    }

  }

  function is_ajax() {
    return (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && ($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest'));
  }  
}  

这对我来说很难,因为我必须按照从CI 1.7.2升级到2.1.4的步骤升级 所以任何建议,为什么会发生这种情况? 谢谢你的所有建议。

2 个答案:

答案 0 :(得分:1)

首先:将您的My_controller.php重命名为MY_Controller.php

第二:将父类名称更改为CI_Controller

class MY_Controller extends CI_Controller { ... }

最后MY_Controller.php个文件放在application/core文件夹中。

来自 User Guide

  

例如,要扩展本机Input类,您将创建一个文件   命名为application/core/MY_Input.php,并使用:

声明您的类
class MY_Input extends CI_Input {

}

答案 1 :(得分:0)

新版CI控制器定义:类MY_Controller扩展CI_Controller