Laravel,使用进度条输出调用许多artisan命令
我创建了一个简单的trait,用于在命令执行期间生成进度条Laravel,使用进度条输出调用许多artisan命令,laravel,laravel-artisan,Laravel,Laravel Artisan,我创建了一个简单的trait,用于在命令执行期间生成进度条 <?php namespace App\Console\Commands; trait ProgressBarOutput { public function runProcess(\Countable $countable, callable $callback) { $bar = $this->output->createP
<?php
namespace App\Console\Commands;
trait ProgressBarOutput
{
public function runProcess(\Countable $countable, callable $callback)
{
$bar = $this->output->createProgressBar(count($countable));
$bar->start();
foreach ($countable as $item) {
call_user_func($callback, $item);
$bar->advance();
}
$bar->finish();
$this->line('');
}
}
命令被正确调用,但没有输出或进度条。
你曾经面对过这样的问题吗
谢谢大家!
migrate
命令需要用户确认流程才能继续。在调用时添加--无交互
,将删除所有用户交互。在这个例子中,它会像
public function handle()
{
\Artisan::call("migrate:users --no-interaction");
\Artisan::call("migrate:cars --no-interaction");
}
migrate
命令需要用户确认流程才能继续。在调用时添加--无交互
,将删除所有用户交互。在这个例子中,它会像
public function handle()
{
\Artisan::call("migrate:users --no-interaction");
\Artisan::call("migrate:cars --no-interaction");
}
我解决了这个问题
只需调用$this->call(“您的命令”);而不是\Artisan::call(“您的命令”)
我解决了这个问题
只需调用$this->call(“您的命令”);而不是\Artisan::call(“您的命令”)
它不起作用。我之所以写“迁移”,是因为我正在从一个数据库迁移到另一个数据库,但我可以称之为“app:users”。在任何情况下,进程完成后立即打印进度条,而不是在执行过程中打印。此外,如果我将“migrate:users”作为单个命令调用,则进度条会一点一点地正确填充。如果我运行包含所有命令的“migrate:all”,进度条只会在最后打印出来,它不起作用。我之所以写“迁移”,是因为我正在从一个数据库迁移到另一个数据库,但我可以称之为“app:users”。在任何情况下,进程完成后立即打印进度条,而不是在执行过程中打印。此外,如果我将“migrate:users”作为单个命令调用,则进度条会一点一点地正确填充。如果运行包含所有命令的“migrate:all”,则进度条仅在末尾打印。
public function handle()
{
\Artisan::call("migrate:users --no-interaction");
\Artisan::call("migrate:cars --no-interaction");
}
public function handle()
{
$this->call("migrate:users");
$this->call("migrate:cars");
}