2
1
記事投稿キャンペーン 「2024年!初アウトプットをしよう」

Unable to load the requested class: {class名} CodeIgniterのエラー解消

Posted at

エラー内容

ブラウザでサイトにアクセスしたところ、以下のエラーが表示された。

An Error Was Encountered
Unable to load the requested class: {class名}

このときCodeIgniterのエラーログは以下の内容のみ。

ERROR - yyyy-MM-dd hh:mm:ss --> Unable to load the requested class: {class名}

通常のエラーログと違ってスタックトレースがなくこの1行だけなので、やや戸惑った。
そのため発生個所の特定も必要になる。

原因と対処

原因:ファイル名・クラス名の大文字小文字のtypoが原因で、クラスのロードに失敗していた。
対処:ファイル名・クラス名の大文字小文字を確認する。ファイル名は大文字にする。

環境

  • CodeIgniter 3.1
  • PHP 8.1.14
  • EC2インスタンス(Amazon Linux 2)
  • Apache 2.4.58

備考:ローカルのDocker環境ではこのエラーは起きず、EC2インスタンスでのみ発生した。
(エラー解消後も、ローカルで発生しなかった原因は調査しきれていない)

私の案件での具体的対処

私の案件ではモデルファイルに以下の記載があった。

$this->load->library('path/to/library/file/class_name');

しかし実際にclass_name.phpファイルは存在しており、ローカル環境でエラーは発生しない。

エラー文でググると参考サイトが出てきてくれたため、以下の対処で無事エラー解消できた。

  • ファイル名の先頭を大文字に変更
    class_name.php → Class_name.php
  • ロードするファイル名を同様に大文字に変更
    path/to/library/file/class_name → path/to/library/file/Class_name

参考サイト

CodeIgniter Forums
SOLVED Unable to load the requested class: Globals
https://forum.codeigniter.com/showthread.php?tid=68373

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1