Laravel db: seed не работает без параметра --class

Запуск php artisan db:seed по какой-то причине не работает в моем проекте Laravel 5.6.

  • Команда выполняется (незаметно) даже без базы данных
  • Не возвращает никаких ошибок на терминале

Однако, когда я запускаю php artisan db:seed --class=ClassNameTableSeeder, он работает. Что могло быть причиной такого странного поведения?

NB: похожи на такие вопросы, как 39521913, но не дублируются.


person Fenn-CS    schedule 17.01.2019    source источник
comment
вы можете показать содержимое класса DatabaseSeeder?   -  person Davit    schedule 17.01.2019
comment
Подтверждаю - вы пробовали composer dump-autoload? иногда я забываю это сделать   -  person Pankaj Jha    schedule 17.01.2019
comment
Выдает ошибку? Можете ли вы добавить свой DatabaseSeeder класс к своему вопросу?   -  person Rwd    schedule 17.01.2019
comment
@PankajJha composer dump-autoload не работает.   -  person Fenn-CS    schedule 17.01.2019
comment
@Davit run по умолчанию DatabaseSeeder по умолчанию пуст, Марцин объясняет это в своем ответе. Спасибо за ваши усилия.   -  person Fenn-CS    schedule 17.01.2019


Ответы (1)


Это потому, что по умолчанию DatabaseSeeder ничего не делает. Исходный код в свежем проекте Laravel выглядит так:

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

Итак, чтобы запустить любую сеялку базы данных, вы должны раскомментировать эту строку и указать допустимое имя класса, например:

$this->call(ClassNameTableSeeder1::class);
$this->call(ClassNameTableSeeder2::class);

и так далее, чтобы запустить сеялки для каждого добавленного вами класса.

person Marcin Nabiałek    schedule 17.01.2019