2

大家好,我有一个代码给我这个错误

致命错误:在第 3 行的 C:\wamp\www\project\application\controllers\admin\home.php 中找不到类 'MY_Controller'

我不知道为什么它会显示这个错误......</p>

C:\wamp\www\project\application\controllers\admin\home.php 的代码是

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Home extends MY_Controller {

function index()
{
    redirect('admin/login');
}

function logout()
{
    $this->session->unset_userdata('logged_in');
    //session_destroy();
    redirect('admin/login');
}
}
?>

C:\wamp\www\project\application\libraries\MY_Controller.php 的代码是

<?php

class MY_Controller extends CI_Controller {
public function __construct() {
    parent::__construct();
    if (!$this->session->userdata('logged_in')) {
        redirect('admin/login');
    }
}

}

如果我把

类 Home 扩展 CI_Controller

代替

类 Home 扩展 MY_Controller

在里面

C:\wamp\www\project\application\controller\admin\home.php

文件并尝试加载

C:\wamp\www\project\application\libraries\MY_Controller.php

在构造函数中

C:\wamp\www\project\application\controllers\admin\home.php

表明

在非对象上调用成员函数 userdata()

为什么这样?

4

2 回答 2

5

扩展系统类时,您需要将类文件core而不是文件夹。library放入文件夹MY_Controller.phpcore

于 2012-04-11T12:30:44.373 回答
0

参考文档:http ://codeigniter.com/user_guide/general/core_classes.html

核心控制器需要存储在application/core/

所以当你扩展一个对象时,它会在那里寻找它。库文件夹用于存储“外部”库,您必须将其明确包含在控制器中:

前任: $this->load->library('class name');

这里的图书馆信息:http: //codeigniter.com/user_guide/general/libraries.html

于 2012-04-11T13:10:44.647 回答