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
- 您使用的是哪个版本的 CI?
我遇到过这个问题:
1
|
`Fatal error: Class ‘MY_Controller’ not found …`
|
发布到我的远程 Linux 服务器 (DreamHost) 但不在 Windows 本地。问题是 Linux 区分大小写:我的 MY_Controller.php 带有小写 c,它没有自动加载。
以防万一其他人有同样的问题:)
- 我也有这个,在 Mac 上本地工作,但在部署到 linux 服务器时失败。
你需要在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 放置在应用程序/核心文件夹中。
- 对于那些对此有疑问但遵循正确目录列表/做法的人^这就是答案。检查那些案例!
来源:https://www.codenong.com/6703803/