8

我已经尝试过这里描述的方法,但这不适用于我的 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

4 回答 4

8

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

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

    return Artisan::output();
});

应该为你做。

于 2015-03-03T14:59:56.420 回答
5

我做了这个

php artisan your:command >> output.txt

对我来说很好。

于 2016-02-16T07:57:37.340 回答
1

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

php artisan <command> | tee <filename>
于 2015-02-23T14:09:09.100 回答
0

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

Route::get('/test', function()
{
    ob_start();
    Artisan::call('testCommand');
    $output = ob_get_clean();
    return $output;
});
于 2015-02-22T20:10:24.303 回答