扩展CodeIgniter控制器时出错

时间:2011-07-15 07:23:23

标签: codeigniter php

我正在尝试扩展CodeIgniter控制器。我创建了MY_Controller.php文件,文件内容如下:

<?php
class MY_Controller extends CI_Controller 
{ 
    function generate_key()
    {
        $n = rand(10e16, 10e20);
        return base_convert($n, 10, 36);
    }

现在我通过扩展MY_Controller而不是CI_Controller来创建我的控制器。以下是控制器的示例:

class Member extends MY_Controller
{
    public function index()
    {
    $this->load->view('welcome');
    }

我已将MY_Controller.php文件放在Application/libraries/文件夹中。但是当我加载应用程序时,我收到错误:

Fatal error: Class 'MY_Controller' not found in path\to\application\controllers\member.php

有人能告诉我我做错了什么吗?感谢。

编辑:我正在使用CodeIgniter 2.0.2

3 个答案:

答案 0 :(得分:4)

我遇到过这个问题:

`Fatal error: Class 'MY_Controller' not found ...`

发布到我的远程Linux服务器(DreamHost),但不在Windows上本地发布。问题是Linux区分大小写:我的MY_Controller.php有一个低位c并且它不是自动加载的。

以防万一其他人有同样的问题:)

答案 1 :(得分:3)

您需要在MY_Controller.php中创建application/core。我尝试了你设置的并遇到了同样的问题。将自定义控制器移动到core解决了问题。

希望它有所帮助!

答案 2 :(得分:1)

我有这样的问题,经过一些搜索我发现自己犯了错误,因为我的控制器类名是MY_Controller,但文件名是My_Controller [Case not matching]。注意: - 在localhost中我没有任何错误。

在扩展控制器中我使用

class Home  extends MY_Controller{
 function __construct() {
parent::__construct();
 }
}

即使我收到错误。

将我的文件名更改为MY_Controller后,它开始运作良好。

MY_contrller放在application / core文件夹中。