Web制作・プログラミング関連のおすすめレビュー記事はこちら

【Laravel】Class hogeSeeder does not exist. エラーの原因と対処法

Laravel

Class hogeSeeder does not exist. エラーとは?

まずは以下のようなコマンドでSeederを作成。

$ php artisan make:seeder PostsTableSeeder
  Seeder created successfully.
$ ls database/seeds/
  DatabaseSeeder.php  PostsTableSeeder.php

lsコマンドでdatabases/seedsの中に作成されていることを確認。

以下のコマンドでSeederを実行すると、以下のようなエラーが出ることがあります。

$ php artisan db:seed
  [ReflectionException]
  Class PostsTableSeeder does not exist

要は作ったはずのSeederクラスが見つからないという状況です。

Class hogeSeeder does not exist. エラーの原因と対処法

composer dump-autoloadで解決

このようなエラーで考えられる原因は、追加したクラスがcomposerのautoloadで読み込まれていないというのがほとんどです。

そのため、コマンドで

$ composer dump-autoload

としてcomposerをロードしてあげればOK。

再度

$ php artisan db:seed

を実行すると正常に動作するはずです。

--class=hogeSeeder で個別に指定

artisanコマンド実行時に--classオプションで直接指定することもできます。

$ php artisan db:seed --class=PostsTableSeeder

※この場合はスペルミスに注意。


上記2つの方法でエラーは解決できるはずです。

Laravelの入門書籍としては、以下がオススメ

タイトルとURLをコピーしました