Lumenのシーダで「Class not found」となってエラーになった時の対処方法
Lumenのシーダでデータベースにデータを入れ込んでいるときに、「Class not found」となってエラーになってちょっとハマったので、対処方法を残しておきます。
更新日: 2018.7.17公開日: 2018.6.20
現象
コマンドラインから普通にシーダを呼び出してみると、、、
php artisan db:seed
Seeding: HogehogeSeed
Seeding: FugafugaSeed
In Container.php line 767:
Class FugafugaSeed does not exist
クラスがないよと怒られます。クラス名などは正しいのに。。。
解決策
おかしいなと思って情報を探していたところ解決策が見つかりました。
composer dump-autoload -o
laracastsのフォーラムによると、seedsのディレクトリはオートロードされないとか。
for the autoloader to pick up the newly classes because the database folder is not automatically autoloaded with PSR-4.
でも、普通にオートロードされる時もあるんですよね。どういう挙動なんでしょうか。
今回の手法はどちらかというエラーが起きた時の緊急対処として覚えておくと良さそうです。