一台播种机 class 正在工作,但另一台不工作,你知道为什么吗?

One seeder class is working but other is not working, do you know why?

我创建了两个播种器 类 'UsersTableSeeder" 和 "Conferences TableSeeder"。当执行命令 "php artisan db:seed" 时,它出现:

播种:UsersTableSeeder

但是 ConferenceTableSeeder 不起作用。你知道为什么可以吗?

UsersTableSeeder:

class UsersTableSeeder extends Seeder
{
    public function run()
    {
        App\User::create([
            'name' => 'John',
            'email' => '',
            'password' => bcrypt('password')
        ]);
    }
}

ConferencesTableSeeder

class ConferencesTableSeeder extends Seeder
{

    public function run()
    {

        App\Event::create([
            'name' => 'Test name',
            'description' => '',
            'date' => '2018-03-08 06:30:00',
            ...
        ]);
    }
}

您需要将 ConferenceTableSeeder::class 添加到 database\seeds\DatabaseSeeder.php 文件

public function run()
{
     $this->call(UsersTableSeeder::class);
     $this->call(ConferenceTableSeeder::class);
}

当您 运行 php artisan db:seed 时,它会调用 DatabaseSeeder class 中的 run 方法,后者又会调用其中的种子文件

默认情况下 UsersTableSeeder 在那里,这就是为什么只有那个 运行

打开此文件夹 database\seeds\DatabaseSeeder.php 并将此处的类名添加到 运行 所有播种机

将以下代码写入 运行 个种子文件:

public function run()
{
     $this->call(UsersTableSeeder::class);
     $this->call(ConferenceTableSeeder::class);
}

注意:您还可以使用以下代码 运行 特定的种子文件 :

php artisan db:seed --class=ConferenceTableSeeder