Laravelでクラスを新しく作った時に、「Class xxxx not found」エラーが表示された時の対処法です。
スポンサーリンク
「Class xxxx not found」発生時の対処
クラス名やパスの設定が間違っていないときはLaravelのルートディレクトリで以下のコマンドを実行することで解消されることがあります。
composer dump-autoload
このエラーが出たときは大抵このコマンドでエラーは解消できますが、解消できない場合はクラスが正しく定義されているのかなど細かな調査が必要になってきます。
dump-autoloadって?
PHPでは通常、別のファイルのプログラムを利用する場合、次のように使用したいPHPファイルのパスを指定して読み込む。
require_once "sample.php";
Laravelなどのフレームワークでは、オートローダの機能により、対象となるphpファイルが自動的に読み込まれるため、requireやrequire_onceは不要です。
オートローダの対象にするディレクトリは、composer.jsonで設定します。。
Laravelのプロジェクトを作成すると、デフォルトでcomposer.jsonに次のように設定され、appフォルダ配下のphpファイルは自動的にvendor/composerフォルダにクラスパスが作成されます。
"autoload": {
"psr-4": {
"App\\": "app/"
},
"classmap": [
"database/seeds",
"database/factories"
]
},
artisanコマンドでモデルやコントローラーを作成した場合は、自動的にオートロードが行われますが、手動でファイルを作成した場合などでは、オードロードが行われないことがあるため、composer dump-autoloadコマンドでクラスパスを作成します。

0 件のコメント:
コメントを投稿