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
Laravel:在迁移中显示控制台命令的输出?_Laravel_Laravel Artisan_Artisan Migrate - Fatal编程技术网

Laravel:在迁移中显示控制台命令的输出?

Laravel:在迁移中显示控制台命令的输出?,laravel,laravel-artisan,artisan-migrate,Laravel,Laravel Artisan,Artisan Migrate,我创建了一个命令,在一个非常大的数据库表上执行一些数据操作,由于这需要足够的时间来完成,我利用了进度条的优点,并在控制台上回显了一些信息 为了自动化工作并减少人为错误,我想使用style在laravel迁移中调用我的命令,它可以工作,但问题是它不会在控制台中打印相应命令的任何输出 我想我应该将artisan:migrate正在使用的当前输出缓冲区传递给artisan::call函数,使其工作,但在迁移过程中没有机会访问它 有什么建议吗?调用Artisan命令后,您可以使用Symfony提供的Co

我创建了一个命令,在一个非常大的数据库表上执行一些数据操作,由于这需要足够的时间来完成,我利用了进度条的优点,并在控制台上回显了一些信息

为了自动化工作并减少人为错误,我想使用style在laravel迁移中调用我的命令,它可以工作,但问题是它不会在控制台中打印相应命令的任何输出

我想我应该将
artisan:migrate
正在使用的当前输出缓冲区传递给
artisan::call
函数,使其工作,但在迁移过程中没有机会访问它


有什么建议吗?

调用Artisan命令后,您可以使用Symfony提供的
ConsoleOutput
在控制台中打印输出。确保在所需的.php文件中使用它,如so
use-Symfony\Component\Console\Output\ConsoleOutput

你可以有这样的东西:

$output = new ConsoleOutput();
$exitCode = Artisan::call('your call');
if ($exitCode == -1)
    $output->writeln("<bg=red;options=bold>Error occured while migration rollback " . "Exit code: " . $exitCode ."</>");
else {
    $output->writeln("<bg=blue;options=bold>Rollbacked successfully! Exit code: " . $exitCode ."</>");
}
$output=new ConsoleOutput();
$exitCode=Artisan::call(“您的呼叫”);
如果($exitCode==-1)
$output->writeln(“迁移回滚时发生错误”。“退出代码:”。$exitCode。”);
否则{
$output->writeln(“回滚成功!退出代码:“.$exitCode”);
}

在我的示例中,您还可以为文本添加颜色,这对于在错误和成功方面提供更好的视觉效果非常有用,请参阅此链接的更多信息:

您可以在调用Artisan命令后,使用Symfony提供的
ConsoleOutput
在控制台中打印。确保在所需的.php文件中使用它,如so
use-Symfony\Component\Console\Output\ConsoleOutput

你可以有这样的东西:

$output = new ConsoleOutput();
$exitCode = Artisan::call('your call');
if ($exitCode == -1)
    $output->writeln("<bg=red;options=bold>Error occured while migration rollback " . "Exit code: " . $exitCode ."</>");
else {
    $output->writeln("<bg=blue;options=bold>Rollbacked successfully! Exit code: " . $exitCode ."</>");
}
$output=new ConsoleOutput();
$exitCode=Artisan::call(“您的呼叫”);
如果($exitCode==-1)
$output->writeln(“迁移回滚时发生错误”。“退出代码:”。$exitCode。”);
否则{
$output->writeln(“回滚成功!退出代码:“.$exitCode”);
}
在我的示例中,您还可以为文本添加颜色,这可能有助于更好地显示错误和成功,请参阅此链接的更多信息:

展开后,
Artisan::call
方法具有以下特征:

Artisan::call(字符串$command,数组$parameters=[],$outputBuffer=null);
如您所见,该方法接受输出缓冲区作为其第三个参数。您可以将该输出缓冲区传递给该方法,命令日志将显示在控制台上

下面是一个例子:

展开,Artisan::call方法具有以下签名:

Artisan::call(字符串$command,数组$parameters=[],$outputBuffer=null);
如您所见,该方法接受输出缓冲区作为其第三个参数。您可以将该输出缓冲区传递给该方法,命令日志将显示在控制台上

下面是一个例子: