gpt4 book ai didi

php - Codeigniter 扩展 Controller ,找不到 Controller

转载 作者:行者123 更新时间:2023-12-03 00:35:04 26 4
gpt4 key购买 nike

在 Codeigniter 2.1.2 中,我想创建基本 Controller ,然后从此 Controller 扩展。它不起作用,我不知道为什么,我现在非常绝望。

\application\core\MY_Base_Controller.php 中,我有这个:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class MY_Base_Controller extends CI_Controller
{
function __construct()
{
parent::__construct();
...

\application\controllers\Home.php 中,我有这个:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); 

class Home extends MY_Base_Controller {

错误消息是

fatal error :在第 3 行 ...\application\controllers\Home.php 中找不到类“MY_Base_Controller”

我不知道该怎么做,我在互联网上读到我必须将基本 Controller 放入我所做的核心文件夹中,我必须使用前缀 MY_ 命名基本 Controller ,我做到了。但它仍然没有工作。在我的 config.php 中也是这一行

$config['subclass_prefix'] = 'MY_';

我使用 xampp 在本地主机上运行它

感谢您的帮助

编辑

有人可以下载以下链接尝试一下,并告诉我出了什么问题。我刚刚下载了 codeigniter 尝试创建基本 Controller 并扩展欢迎 Controller 。不工作。以下 rar 中只有修改过的文件。谢谢 http://goo.gl/sKHkDl

编辑2

我可以通过将 MY_Base_Controller 重命名为 MY_Controller 来实现此功能。这是否意味着我只能为 Controller 创建一个扩展类?例如。我不能拥有

  • MY_Base_Auth_Controller
  • MY_Base_Article_Controller

只是MY_Controller

最佳答案

我在第一个 CI 应用程序中遇到了同样的问题,并发现了两个需要检查的关键元素:

<强>1。案例匹配:根据您的服务器配置,目录中文件的名称需要与您的类的大小写匹配。例如,如果您的类名为“MY_Controller”,则 Linux 服务器上的文件名需要为:“MY_Controller.php”。众所周知,Windows 服务器存在大写文件名问题,因此您可以尝试将 Controller 命名为“my_controller.php”和/或将 config.php 中的扩展名更改为“my_”而不是“MY_”

<强>2。插入自动加载功能由于我不知道的原因,Codeigniter 在首次加载核心类之前不会自动识别和读取扩展核心类。这可能会导致您的扩展无法正确加载。为了解决这个问题,您可以将这个简单的自动加载脚本添加到 config.php 的最底部

/*
|--------------------------------------------------------------------------
| Autoload Custom Controllers
|--------------------------------------------------------------------------
|
*/
function __autoload($class) {
if (substr($class,0,3) !== 'CI_') {
if (file_exists($file = APPPATH . 'core/' . $class . EXT)) {
include $file;
}
}
}

旁注:上述解决方案已在 CodeIgniter 2.1.4 上进行了测试。所提问题涉及CodeIgniter 2.1.2

关于php - Codeigniter 扩展 Controller ,找不到 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21351808/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com