19

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ロードから外すと問題は解決します。

何が間違っているのでしょうか?

4

3 に答える 3

49

Windowsでは、パスの大文字と小文字は関係ありません。Linuxではそうです。

自動ロードするときは、「foo」ではなく「Foo」を使用してください。

私はそれがうまくいくと信じています。

codeigniterはパスの大文字と小文字を区別するのに十分スマートであり、クラスはphpで大文字と小文字が区別されないため、自動読み込みを解除すると機能すると思います。

于 2011-11-06T11:33:47.510 に答える
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');
于 2017-04-27T06:55:37.390 に答える
0

アプリケーションにLinuxサーバーを使用している場合は、この問題を回避するために小文字のファイル名とクラス名を使用する必要があります。

元。

ファイル名:csvsample.php

class csvsample {

}
于 2013-10-01T03:21:43.443 に答える