既存の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を学んでしまったがためにこういうことに困るのではないかと思いました。言語から学ぶって大事ですね。