問題
すでに作ったControllerファイル名を変更(大文字・小文字)したら、ファイルが見つからないエラーが出てサイトが動かなくなった。表示されたエラーは以下の通り:
ErrorException (E_WARNING)
include(/hogehoge/backend/vendor/composer/../../app/Http/Controllers/NameOfController.php):
failed to open stream: No such file or directory
環境と経緯
- Laravel 5.7使用。
- "php artisan make:controller nameOfController"でコントローラを追加。
- 自動生成されたファイルの名前(nameOfController.php)を、のちに"NameOfController.php"へ変更。
- ファイル名を変更した後で、routes/web.phpには、"Route::get('/entrance', 'NameOfController@hoge')->name('hoge');"を追加。
- 前述の問題が発生。ErrorException・No such file or directoryエラーが発生し、サイトが動かなくなった。
解決策
ターミナルで、"composer dump-autoload"をlaravelプロジェクトのルートディレクトリで実行する。こちらのブログが参考になりました。
背景
コントローラを作っていくうちに、コントローラファイル名のケーススタイルがバラバラになってきた(camelCase名で作ったコントローラよりPascalCaseの方が多くなってきた)ため、手に負えなくなる前に統一しておこうと思った途端に起きた問題でした。