【发布时间】:2019-04-08 02:33:35
【问题描述】:
我现在正在将我公司的旧 CI2 网站更新为 CI3。 CI2 中的模型、控制器和视图在稍作更改后似乎工作正常,但我的应用程序一直显示“致命错误:第 196 行的 pathtoapp\system\core\Common.php 中找不到类 'CI_Func'" 加载库时,"Func.php" 带有"F" 是大写,它的位置在"pathtoapp\application\libraries" 并且只是回显 "Hello world" 用于测试目的。显示文本“Hello world”,但应用程序仍显示错误。我尝试了许多其他库,但它只显示了相同类型的错误,例如“致命错误:类'CI_Someotherlibrary'...”。我的系统使用 IIS、PHP 5.5 和 MySQL 运行。
这是我的 Func.php 和我的控制器
defined('BASEPATH') OR exit('No direct script access allowed');
class Func {
function __construct()
{
echo 'Hello world';
}
}
class Home extends CI_Controller{
public function __construct(){
parent::__construct();
$this->load->library('form_validation');
$this->load->helper(array('url', 'form', 'download', 'text', 'views'));
$this->load->library('pagination');
$this->load->Model("Menus");
$this->load->Model("2019/News","News");
$this->load->library('Func');
}}
我不知道为什么它一直在我的库名称前添加“CI_”。我还是 CI 的新手,也是 stackoverflow 的新手。我已经在互联网上搜索并尝试了几乎所有东西,但仍然没有运气。任何建议将被认真考虑。提前致谢。 PS:对不起我的英语不好。
更新来自@Bira 任务的信息 - 当我将类的名称更改为 CI_Func 或 $this->load->library('func'); 时,出现新错误:“An Error Was Encountered Unable to load the requested class: Func”
更新 1: 这是两个几乎像我的问题但无法解决我的问题的线程 Thread 1
更新 2: - 我发现当我不在我的视图中使用 $this->load->view 时,错误消失了。可能的原因是 $this->load->view 触发了一些使加载器类出错的东西。我只是不知道它有什么问题,因为我正在使用 $this->load->view 来加载我的网站布局的某些部分,并且它在 CI2 上运行良好。请有人帮助我。
更新 3: - 我已经解决了。在我看来,我使用 $home = new home(); 创建控制器的新实例。所以可能是它再次加载库并导致错误。谢谢大家的帮助。
【问题讨论】:
-
下载一个全新的 CI3 框架并复制您的 MVC 文件夹。这是最简单的方法。
-
@Bira 我下载了新的 CI3 并使用模型、控制器和视图以及 routes.php、config.php、constants.php 和 database.php 中的一些配置来运行应用程序。我试了3次,每次复制,稍微改一下,看看哪些文件可能会出错,结果还是一样。
-
library方法应该扩展当前任何 CI 库。您的课程没有扩展任何课程。 codeigniter.com/user_guide/general/creating_libraries.html -
@Bira 很抱歉没有提供此信息,我会更新帖子。当我将其更改为 CI_Func 时,出现新错误:“遇到错误无法加载请求的类:Func”。谢谢
-
$this->load->library('func'); // 没有大写,试试这个。类名就可以了,不用CI_
标签: php codeigniter-3