CodeIgniter:"无法加载请求的类"

时间:2011-11-06 10:44:56

标签: php codeigniter autoloader

在我的WAMP框中,我执行了以下操作:

  1. 添加了一个名为/application/libraries/Foo.php
  2. 的文件
  3. Foo.php是一个类,它的名字是Foo
  4. 在/application/config/autoload.php中,我添加了$autoload['libraries'] = array('foo');
  5. 一切正常。当我上传到我的LAMP框时,我收到以下错误:

    Unable to load the requested class: foo

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

    任何想法可能出错?

3 个答案:

答案 0 :(得分:42)

在Windows中,路径中的大写并不重要。在Linux中它确实如此。

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

我相信会做到这一点。

我认为当你从自动加载中取出它时它会起作用,因为codeigniter足够聪明,可以找出路径中的大小写,并且类在php中是独立的。

答案 1 :(得分:3)

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

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

An Error Was Encountered

Unable to load the requested class: Ckeditor

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

我也改变了我的加载调用以匹配大写:

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

答案 2 :(得分:0)

如果您正在为您的应用程序使用Linux服务器,则必须使用小写文件名和类名来避免此问题。

实施例

文件名:csvsample.php

class csvsample {

}