Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/115.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel,使用进度条输出调用许多artisan命令_Laravel_Laravel Artisan - Fatal编程技术网

Laravel,使用进度条输出调用许多artisan命令

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

我创建了一个简单的trait,用于在命令执行期间生成进度条

    <?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");
}