通过代码调用工匠命令不起作用描述结果更新

2022-08-30 21:10:04

描述

在我的Laravel应用程序中,我运行

php artisan languages:export

我根据我的表成功导出了一个文件。csvlanguages

但目标是利用这个来自Laravel的Artisan::call,但是当我在代码中这样做时

$export = Artisan::call('languages:export');

结果

我一直得到作为变量的结果 - 当然没有文件导出0$export


更新

现在我尝试通过调用它shell_exec() and exec()

$cmd = 'php '.base_path().'/artisan languages:export';
$export = shell_exec($cmd);

我没有看到任何一个生成任何内容。

从命令行界面,我运行

php /Applications/MAMP/htdocs/code/artisan languages:export

我看到生成的 csv 文件。


如何通过代码调用工匠命令?


答案 1

尝试通过在以下时间后调用来检查输出dd(Artisan::output());$export = Artisan::call('languages:export');


答案 2

您的控制台命令不会以这种方式返回 CSV 文件,因为控制台命令不是这样工作的。你得到的事实实际上是一件好事控制台着陆(这意味着它完成了而不会抛出错误)。0

你的电话是正确的,你的期望是错误的。您需要改变您的方法,无论您正在消费如何。如果要实际访问新创建的 CSV,请查看程序包和/或内置命令。如果您只是想知道它是否成功完成,那么请将其视为成功。$exportphpleague/csvfopen0


推荐