我尝试过这里描述的方法,但这在我的Laravel 5安装中不起作用。
use SymfonyComponentConsoleOutputBufferedOutput;
Route::get('/test', function()
{
$output = new BufferedOutput;
Artisan::call('testCommand', array(), $output);
return $output->fetch();
});
我的命令;
public function fire()
{
$this->info('No output visible');
}
有什么建议我可能做错什么吗?或者是在《拉拉威尔5》中发生了什么变化?
我使用Artisan::output()
成功地实现了这一点,它返回了最新命令的输出。
Route::get('/test', function()
{
Artisan::call('testCommand', array());
return Artisan::output();
});
应该为你做这件事。
我做了这个
php artisan your:command >> output.txt
对我来说效果很好。
如果您在命令行外工作,则可以通过管道传输tee
命令,同时写入文件和stdout
。
php artisan <command> | tee <filename>
我也遇到过同样的问题,用老式PHP替换BufferedOutput让它对我有效,也许它也对你有效:
Route::get('/test', function()
{
ob_start();
Artisan::call('testCommand');
$output = ob_get_clean();
return $output;
});