关于 php:扩展 CodeIgniter 控制器时出错

Error in extending CodeIgniter Controller

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

1
2
3
4
5
6
7
8
<?php
class MY_Controller extends CI_Controller
{
    function generate_key()
    {
        $n = rand(10e16, 10e20);
        return base_convert($n, 10, 36);
    }

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

1
2
3
4
5
6
class Member extends MY_Controller
{
    public function index()
    {
    $this->load->view('welcome');
    }

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

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

谁能告诉我我做错了什么?谢谢。

编辑:我正在使用 CodeIgniter 2.0.2


我遇到过这个问题:

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

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

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


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

希望对你有帮助!


我遇到了这样的问题,经过一番搜索,我发现自己犯了错误,因为我的控制器类名是 MY_Controller 但文件名是 My_Controller[大小写不匹配]。注意:- 在本地主机中我没有任何错误。

在我使用的扩展控制器中

1
2
3
4
5
class Home  extends MY_Controller{
 function __construct() {
parent::__construct();
 }
}

即使我得到了错误。

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

MY_contrller 放置在应用程序/核心文件夹中。