2
0

More than 1 year has passed since last update.

Laravel10で[Class "Database\Factories\UserFactory" not found]が起こってSeederが実行できない

Posted at

既存のLaravel6のアプリをLaravel10にアップグレードした後、以下のコマンドを実行すると、

php artisan db:seed

[Class "Database\Factories\UserFactory" not found]というエラーを吐かれてしまった。ここからGoogle検索でさまざまな記事や以下のドキュメントを参考にしてなんとか頑張っていたが、長時間解決できず。(ModelにHasFactory追加したりとか。)
https://readouble.com/laravel/10.x/ja/seeding.html

解決策としては、composer.jsonに以下の記述を追加すれば良いだけだった。
[変更前]

"autoload": {
        "psr-4": {
            "App\\": "app/"
        },
...

[変更後]

"autoload": {
        "psr-4": {
            "App\\": "app/",
            "Database\\Factories\\": "database/factories/",
            "Database\\Seeders\\": "database/seeds/"
        },
...

この内容な様々な記事に書いてあったので、これだけが原因なら一件落着だった。しかし私の一番の敗因はそこではなく、以下のコマンドを叩かなければいけませんでした。

composer dump-autoload 

このコマンドでファイルとかクラスとかのリストを再生成してくれるそうです。(あまり仕組みをわかっていません。)
私はこれで無事Seederを動かすことができました。

※記事を読んでいて思いましたが、PHPをあまり書いたことがない状態でLaravelを学んでしまったがためにこういうことに困るのではないかと思いました。言語から学ぶって大事ですね。

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