如何从 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
对我来说效果很好。
我试过 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
对我来说效果很好。