我在一个路由中使用了Artisan::call(),希望将命令输出保存到一个变量中.

有没有办法捕获artisan命令生成的STDOUT和STDERR?

推荐答案

这是一种方式:

use Symfony\Component\Console\Output\BufferedOutput;

Route::get('/test', function()
{
    $output = new BufferedOutput;

    Artisan::call('list', array(), $output);

    return $output->fetch();
});

Laravel相关问答推荐

哈希:check()不返回预期结果Laravel 10

Nginx上带有SSL的Laravel混响

Laravel FAKER语法

Uncaught ReferenceError:未定义require[Shopify PHP React Browser问题]

自定义验证在表单请求上始终返回 true laravel

使用正则表达式 laravel 忘记缓存

阻止用户查看其他用户正在查看的内容的最佳方法是什么?

Laravel Homestead vagrant up 超时

即使上传了文件,Laravel Input::hasFile('image') 也会返回 false

Laravel 控制器中一种特定方法的中间件

我怎样才能了解更多关于我的 Laravel 排队作业(job)失败的原因?

查询构建器中的 Laravel 5 多重 Select ()

Laravel:`loadMissing` 函数的目的是什么?

laravel 5 - assets资源 list 中未定义 css 文件?

在 laravel 分页中添加一些数据

Laravel - 更新时禁用更新时间

无法打开流:没有这样的文件或目录(Laravel)

在共享主机中仅使用 FTP 部署 Laravel 5

Laravel 获取查询字符串

使用迁移更改表 Laravel 5