我尝试了described here方法,但这并不适用于我的Laravel 5安装。
use Symfony\Component\Console\Output\BufferedOutput;
Route::get('/test', function()
{
$output = new BufferedOutput;
Artisan::call('testCommand', array(), $output);
return $output->fetch();
});
我的命令;
public function fire()
{
$this->info('No output visible');
}
有什么建议我可能会做错吗?或者是Laravel 5中发生了哪些变化?
答案 0 :(得分:5)
我设法使用Artisan::output()
使其工作,返回最新命令的输出。
Route::get('/test', function()
{
Artisan::call('testCommand', array());
return Artisan::output();
});
应该为你做。
答案 1 :(得分:2)
我做了这个
php artisan your:command >> output.txt
对我来说很好。
答案 2 :(得分:0)
我有同样的问题,用oldschool取代BufferedOutput让PHP对我有用,也许它也适合你:
Route::get('/test', function()
{
ob_start();
Artisan::call('testCommand');
$output = ob_get_clean();
return $output;
});
答案 3 :(得分:0)
如果您正在使用命令行,那么您可以通过tee
命令来同时写入文件和stdout
。
php artisan <command> | tee <filename>