我正在尝试扩展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
答案 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文件夹中。