大家好,我有一个代码可以给我这个错误
致命错误:第3行的C:\ wamp \ www \ project \ application \ controllers \ admin \ home.php中找不到类'MY_Controller'
我不知道为什么会出现这个错误...
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');
}
}
}
如果我放置
class Home扩展了CI_Controller
而不是
中的class Home扩展了MY_Controller
C:\瓦帕\ WWW \项目\应用\控制器\管理员\ home.php
文件并尝试加载
的构造函数中的C:\瓦帕\ WWW \项目\应用\库\ MY_Controller.php
C:\瓦帕\ WWW \项目\应用\控制器\管理员\ home.php
显示
在非对象
上调用成员函数userdata()
为什么会这样?
答案 0 :(得分:5)
扩展System类时,需要将类文件放到core
而不是library
文件夹中。将MY_Controller.php
放在core
文件夹中。
答案 1 :(得分: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