2011-11-06 4 views
13

「要求されたクラスをロードできません」、私は次のようでした:CodeIgniterの:私のWAMPボックスで

  1. はFoo.phpがクラスである
  2. /application/libraries/Foo.php
  3. というファイルを追加しました、およびそれの名前が/application/config/autoload.phpで Foo
  4. ですが、私はすべてが正常に動作します$autoload['libraries'] = array('foo');

を追加しました。私は私のLAMPボックスにアップロードすると、私は次のエラーを取得する:/application/libraries/Foo.phpの

Unable to load the requested class: foo

許可は、0755の所有者は、CIファイルの残りの部分と同じです。 fooをオートロードから外してしまうと、問題は解消されます。

何が間違っている可能性がありますか?

答えて

37

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

オートロードするときは、 "foo"ではなく "Foo"を使用してください。

私はそのトリックを行うと信じています。

私はそれが自動読み込みから取り除くときに動作すると思います。なぜなら、codeigniterはパス内の大文字と小文字を区別するために十分スマートなので、PHPでは大文字と小文字が区別されます。

+0

私はケース –

+0

についてコードイグナイタドキュメントにおけるいくつかのmistrakesは同じ問題を持っていたあると思います。オートロードでは、私は 'oauth2'を持っていましたが、 'OAuth2'に変更されていました。ありがとう。 Linuxの – gelviis

+0

FOOとは何ですか?そのモデルですか?またはクラスまたはビューのコントローラか他の何か?具体的にしてください。 –

0

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

Ex。

ファイル名:私のLinuxのライブサイトに私の地元にOSXから展開する場合csvsample.php

class csvsample { 

} 
2

は、私は同様の問題がありました。

それはOSX上で罰金走ったが、私はなっていたLinux上:

An Error Was Encountered 

Unable to load the requested class: Ckeditor 

問題は、Linuxのパスが明らかに大文字と小文字が区別されるということでしたので、私は「ckeditor.php」から自分のライブラリファイルの名前を変更する必要がありました"CKEditor.php"。

私はまた、大文字と小文字を一致させるために私のロードの呼び出しを変更:

$this->load->library('CKEditor'); 
関連する問題