Один класс сеялки работает, а другой не работает, знаете почему?

Я создал два класса сеялки "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 ответа

Решение

Вам нужно добавить ConferenceTableSeeder::class к database\seeds\DatabaseSeeder.php файл

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

Когда ты бежишь php artisan db:seed это вызывает run метод в DatabaseSeeder класс, который, в свою очередь, вызывает файлы сеялки там

UsersTableSeeder там по умолчанию, поэтому только тот побежал

Откройте эту папку database\seed \DatabaseSeeder.php и добавьте сюда имя класса, чтобы запустить все сеялки

напишите приведенный ниже код для запуска файлов сеялки:

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

Примечание: вы также можете запустить определенный файл сеялки, используя следующий код:

php artisan db:seed --class=ConferenceTableSeeder
Другие вопросы по тегам