Laravel:在迁移中显示控制台命令的输出?
我创建了一个命令,在一个非常大的数据库表上执行一些数据操作,由于这需要足够的时间来完成,我利用了进度条的优点,并在控制台上回显了一些信息 为了自动化工作并减少人为错误,我想使用style在laravel迁移中调用我的命令,它可以工作,但问题是它不会在控制台中打印相应命令的任何输出 我想我应该将Laravel:在迁移中显示控制台命令的输出?,laravel,laravel-artisan,artisan-migrate,Laravel,Laravel Artisan,Artisan Migrate,我创建了一个命令,在一个非常大的数据库表上执行一些数据操作,由于这需要足够的时间来完成,我利用了进度条的优点,并在控制台上回显了一些信息 为了自动化工作并减少人为错误,我想使用style在laravel迁移中调用我的命令,它可以工作,但问题是它不会在控制台中打印相应命令的任何输出 我想我应该将artisan:migrate正在使用的当前输出缓冲区传递给artisan::call函数,使其工作,但在迁移过程中没有机会访问它 有什么建议吗?调用Artisan命令后,您可以使用Symfony提供的Co
artisan:migrate
正在使用的当前输出缓冲区传递给artisan::call
函数,使其工作,但在迁移过程中没有机会访问它
有什么建议吗?调用Artisan命令后,您可以使用Symfony提供的
ConsoleOutput
在控制台中打印输出。确保在所需的.php文件中使用它,如souse-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文件中使用它,如souse-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);
如您所见,该方法接受输出缓冲区作为其第三个参数。您可以将该输出缓冲区传递给该方法,命令日志将显示在控制台上
下面是一个例子: