在 5 号拉拉维尔运行工匠指挥

我有这样的控制器

 public function store(Request $request)
{
   Artisan::call("php artisan infyom:scaffold {$request['name']} --fieldsFile=public/Product.json");
}

显示错误

在“php artisan infyom”命名空间中没有定义命令。

当我在CMD中运行此命令时,它可以正常工作


答案 1

您需要删除部分并将参数放入数组中以使其工作:php artisan

public function store(Request $request)
{
   Artisan::call("infyom:scaffold", ['name' => $request['name'], '--fieldsFile' => 'public/Product.json']);
}

https://laravel.com/docs/5.2/artisan#calling-commands-via-code


答案 2

如果你有简单的工作要做,你可以从路由文件做。例如,您想要清除缓存。在终端中,它将是php artisan cache:clear 在路由文件中,这将是:

Route::get('clear_cache', function () {

    \Artisan::call('cache:clear');

    dd("Cache is cleared");

});

要从浏览器运行此命令,只需转到您的项目路由并clear_cache。例:

http://project_route/clear_cache

推荐