Laravel:如何使用Artisan Facade在Controllers和Models中调用终端命令

Laravel: How to use Artisan Facade to call terminal commands in Controllers & Models

我设置了以下 'artisan' 命令

protected $signature = 'make:sub {type} {name}';

在终端中输入上述命令即可。

我想在控制器中动态调用它。下面是我的代码:

    $name = $request->input("name");

    Artisan::call('make:sub', [
        'type' => 'origin', 'name' => $name
    ]);

以上方法无效。

我认为问题可能出在 'artisan namespace'。

调用命令文件夹中设置的 artisan 命令的正确 'use namespace' 是什么?

您有 2 个选择。

1) 在文件开头可以输入:use Artisan;

2) 只需输入:

\Artisan::call('make:sub', [
     'type' => 'origin', 'name' => $name
]);