我基于documentation在class GridWithRoverSeeder
中进行了名为./database/seeds/GridWithRoverSeeder.php
的数据库迁移:
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
class GridWithRoverSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
DB::table('grid')->insert([
'id' => 1,
'width' => 10,
'height' => 10,
]);
DB::table('rover')->insert([
'id' => 1,
'rover_id' => 1,
'command' => "RRMRMMRM",
'last_command'=>""
]);
}
}
我从DatabaseSeeder
称呼它:
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
/**
* Seed the application's database.
*
* @return void
*/
public function run()
{
$this->call([
GridWithRoverSeeder::class
]);
}
}
但是当我运行php artisan db:seed
时,出现以下错误:
ReflectionException : Class GridWithRoverSeeder does not exist
你知道为什么吗?
答案 0 :(得分:3)
确保在laravel中创建种子器或任何新类之后,您已经运行composer dump-autoload
。
答案 1 :(得分:2)
我能够重新创建您的问题,这有助于解决问题。
删除您的种子文件并重新生成它。
php artisan make:seed GridWithRoverSeeder
运行
composer dump-autoload
在DatabaseSeeder中调用播种器
$this->call([
GridWithRoverSeeder::class
]);
注意: 避免手动重命名文件。