kyo*_*kyo 13 php laravel laravel-5
在我的Laravel应用程序中,我运行
php artisan languages:export
Run Code Online (Sandbox Code Playgroud)
我有一个csv文件导出成功基于我的languages表.
但目标是利用来自Laravel的Artisan :: call,但当我在我的代码中执行此操作时
$export = Artisan::call('languages:export');
Run Code Online (Sandbox Code Playgroud)
我一直得到变量的0结果$export- 当然没有文件导出.
现在我尝试通过它来调用它 shell_exec() and exec()
$cmd = 'php '.base_path().'/artisan languages:export';
$export = shell_exec($cmd);
Run Code Online (Sandbox Code Playgroud)
我看不出任何一个都没有产生.
从命令行界面,我运行
php/Applications/MAMP/htdocs/code/artisan languages:export
我看到我的csv文件生成了.
如何通过代码进行并调用工匠命令?
您的控制台命令不会以这种方式返回CSV文件,因为这不是控制台命令的工作方式.你得到的事实0实际上是一个好东西控制台土地(这意味着它完成没有抛出错误).
你的电话是正确的,这是你的期望是错的.无论你消费多少,都需要改变你的方法$export.如果要实际访问新创建的CSV,请查看phpleague/csv包和/或内置fopen命令.如果您只是想知道它已成功完成,那么只需将其0视为成功.
您也可以尝试exec()使用php artisan languages:exportas 参数的函数。在这种情况下,您可能需要在命令前面包含正确的路径。
我还找到了函数Artisan::command而不是调用,也许可行?