当我运行php artisan db:seed时,我得到以下错误:
[ReflectionException] Class SongsTableSeeder does not exist
这是怎么回事?
我的DatabaseSeeder类:
<?php
use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;
class DatabaseSeeder extends Seeder {
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
Model::unguard();
$this->call('SongsTableSeeder');
}
}
我的SongsTableSeeder类:
<?php
// Composer: "fzaninotto/faker": "v1.4.0"
use Faker\Factory as Faker;
use Illuminate\Database\Seeder;
use DB;
class SongsTableSeeder extends Seeder {
public function run()
{
$faker = Faker::create();
$songs = [];
foreach(range(1, 10) as $index)
{
$songs[] = ['title' => $faker->words(rand(1,4))];
}
DB::table('songs')->insert($songs);
}
}
当你将你的项目迁移到Laravel 8时,你会得到这个错误,然后你应该遵循下面给出的一些步骤。
1.去找你的作曲家。json文件。
2.改变自动装填部分
"autoload": {
"psr-4": {
"App\\": "app/",
"Database\\Factories\\": "database/factories/",
"Database\\Seeders\\": "database/seeders/"
}
},
to
"autoload": {
"psr-4": {
"App\\": "app/"
},
"classmap": [
"database/seeds",
"database/factories"
]
},
3.现在运行composer dump-autoload或composer update命令
4.最后运行php artisan db:seed命令
当你将你的项目迁移到Laravel 8时,你会得到这个错误,然后你应该遵循下面给出的一些步骤。
1.去找你的作曲家。json文件。
2.改变自动装填部分
"autoload": {
"psr-4": {
"App\\": "app/",
"Database\\Factories\\": "database/factories/",
"Database\\Seeders\\": "database/seeders/"
}
},
to
"autoload": {
"psr-4": {
"App\\": "app/"
},
"classmap": [
"database/seeds",
"database/factories"
]
},
3.现在运行composer dump-autoload或composer update命令
4.最后运行php artisan db:seed命令
如果你迁移到Laravel 8,你必须给种子类添加一个命名空间:
<?php
namespace Database\Seeders;
...
接下来,在您的作曲家。Json文件,从自动加载部分删除classmap块,并添加新的命名空间类目录映射:
"autoload": {
"psr-4": {
"App\\": "app/",
"Database\\Seeders\\": "database/seeds/"
}
},
最后,做一个作曲家转储-自动加载。
欲了解更多信息:
https://laravel.com/docs/8.x/upgrade#seeder-factory-namespaces