如何从Laravel 5 Artisan命令保存/重定向输出?

时间:2015-02-22 20:01:21

标签: php laravel laravel-5 artisan

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

4 个答案:

答案 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>