CodeIgniter: “无法加载请求的类”

2022-08-30 20:24:37

在我的WAMP盒子上,我做了以下操作:

  1. 添加了一个名为 /application/libraries/Foo 的文件.php
  2. Foo.php是一个类,它的名字是Foo
  3. 在 /application/config/autoload.php 中,我添加了$autoload['libraries'] = array('foo');

一切都很好。当我上传到我的LAMP盒时,我收到以下错误:

Unable to load the requested class: foo

/application/libraries/Foo.php 的许可是 0755。所有者与其余 CI 文件相同。从自动加载中取出会使问题消失。foo

任何想法可能是错误的?


答案 1

在 Windows 中,路径中的大写无关紧要。在Linux中确实如此。

自动加载时,请使用“Foo”而不是“foo”。

我相信这将解决问题。

我认为当你把它从自动加载中取出时,它是有效的,因为codeigniter足够聪明,可以弄清楚路径中的大写,并且类在php中与大小写无关。


答案 2

当我从本地的OSx部署到我的Linux实时站点时,我遇到了类似的问题。

它在OSx上运行良好,但在Linux上我得到了:

An Error Was Encountered

Unable to load the requested class: Ckeditor

问题在于Linux路径显然区分大小写,所以我不得不将我的库文件从“ckeditor.php”重命名为“CKEditor.php”。

我还更改了我的加载调用以匹配大小写:

$this->load->library('CKEditor');

推荐