0
0

【メモ】Laravelでuseを利用したインポートがうまくいかなかった件

Posted at

概要

  • use 文は正しいはずが、あるはずのクラスがないと怒られた。
  • 引数なしのindex()メソッドの場合は正常に動いた。
  • ファイル名のタイポが原因であった。

詳細

エラーメッセージ
ReflectionException: Class "App\Http\Requests\StoreCardFormatRequest" does not exist in file /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/ResolvesRouteDependencies.php on line 81

要は、StoreCardFormatRequestというクラスがないと怒られている。

useなどに関しては、問題ないと判断し下記コマンドを実行したところskipしたと警告が発生した。

コマンド
dump-autoload

Generating optimized autoload files
Class App\Http\Requests\StoreCardFormatRequest located in ./app/Http/Requests/StorCardFormatRequest.php does not comply with psr-4 autoloading standard. Skipping.
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi

エラー内容についてChatGPTに確認したところ

エラーメッセージによれば、StoreCardFormatRequest クラスのファイル名がPSR-4のオートローディング規約に違反しています。PSR-4は、クラス名とファイル名が一致していることを要求します。この場合、ファイル名が StorCardFormatRequest.php となっており、e が抜けているためにクラスが見つからないというエラーが出ています。

とのことであった。
実際に確認したところ、ファイル名のタイポを修正し忘れていた。

タイポを修正したところ実際に稼働するようになった。

まとめ

Laravelはワンコマンドでファイルの作成やクラスの外枠を創れる半面、タイポの修正には注意が必要であると感じた。ひとまず同じようなエラーが発生したときは、オート―ディングを試してみようと感じた。

0
0
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
0
0