在使用 Laravel Artisan 生成 Seeder 的过程中,不小心输错了 Seeder 名,
1 | php artisan make:seeder FooTableSeeder |
以至于填充数据时发生报错:
1 | php artisan db:seed --class=BarTableSeeder |
Illuminat\Contracts\Container\BindingResolutionException : Target class [BarTableSeeder] does not exist.
此时,如果单单修改生成的 Seeder 文件名 FooTableSeeder.php
为 BarTableSeeder
,依然报错。
这是因为 Composer 的 autoloader 中仍存有错误的 classmap 记录,例如在 vendor/compser/autoload_classmap.php
中,我们可以看到原先错误的 classmap 记录:
1 | 'FooTableSeeder' => $baseDir . '/database/seeds/FooTableSeeder.php', |
使用 dump-autoload
重新生成 Composer 的 autoloader:
1 | composer dump-autoload |
之后就可以顺利地进行数据填充了。