一个播种者班级正在运作,但其他播种器不起作用,你知道为什么吗?

时间:2018-03-13 15:12:21

标签: php laravel laravel-seeding

我创建了两个播种器类'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',
            ...
        ]);
    }
}

2 个答案:

答案 0 :(得分:1)

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

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

当您运行php artisan db:seed时,它会调用run类中的DatabaseSeeder方法,该方法会调用那里的播种机文件

UsersTableSeeder默认存在,这就是为什么只有那个

答案 1 :(得分:0)

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

编写以下代码来运行播种器文件:

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

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

php artisan db:seed --class=ConferenceTableSeeder