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 件のコメント:
コメントを投稿