Lumenのシーダで「Class not found」となってエラーになった時の対処方法

Lumenのシーダでデータベースにデータを入れ込んでいるときに、「Class not found」となってエラーになってちょっとハマったので、対処方法を残しておきます。

現象

コマンドラインから普通にシーダを呼び出してみると、、、

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.

Seeder class not found in Laravel5 Seeding

でも、普通にオートロードされる時もあるんですよね。どういう挙動なんでしょうか。


今回の手法はどちらかというエラーが起きた時の緊急対処として覚えておくと良さそうです。