выход ремесленника один за другим

Если я бегу php artisan migrate:fresh --seed --force в консоли все работает как положено.
Вывод отображается один за другим.

Dropped all tables successfully.

Migration table created successfully.

Migrating: 2014_10_12_000000_create_users_table

Migrated:  2014_10_12_000000_create_users_table

Seeding: UsersTableSeeder

etc.

Если я запускаю команду ремесленника из Laravel, все работает нормально, за исключением вывода. Он отображается один раз в конце со всеми действиями.

$this->info('Migrating and seeding the database...');
Artisan::call('migrate:fresh', [
'--seed'  => true,
'--force' => true,
]);
$this->line(Artisan::output());

Я ищу метод для отображения Artisan :: output () по одному для каждой таблицы (такое же поведение, как при запуске команды в консоли).

1

Решение

Причина, по которой ваш код работает так, как он работает, заключается в том, что вы выводите выходные данные команды после ее завершения:

$this->line(Artisan::output());

Для того, чтобы отобразить вывод выполненных мигрировать: свежие По мере того, как команда запускается с миграциями, вам нужно сделать так, чтобы она выводилась на выход родительской команды, а не на собственную, которая позже будет прочитана Artisan :: выход ().

Следующий код сделает свое дело:

$this->info('Migrating and seeding the database...');
Artisan::call('migrate:fresh', [
'--seed'  => true,
'--force' => true,
], $this->output);

Обратите внимание на третий аргумент, переданный call() метод.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector