如何从 Laravel 5 Artisan 命令输出 save/redirect?

How to save/redirect output from Laravel 5 Artisan command?

我试过 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 中发生了变化?

我遇到了同样的问题,将 BufferedOutput 替换为 oldschool PHP 对我有用,也许对你也有用:

Route::get('/test', function()
{
    ob_start();
    Artisan::call('testCommand');
    $output = ob_get_clean();
    return $output;
});

如果您在命令行下工作,那么您可以通过 tee 命令同时写入文件和 stdout

php artisan <command> | tee <filename>

我设法使用 Artisan::output() 让它工作,returns 最新命令的输出。

Route::get('/test', function()
{    
    Artisan::call('testCommand', array());

    return Artisan::output();
});

应该为你做。

我做到了

php artisan your:command >> output.txt

对我来说效果很好。