自定义 Laravel Artisan Make Controller 命令

Custom Laravel Artisan Make Controller command

我想将 artisan 命令生成的控制器放到自定义目录中。我做了自己的命令

php artisan make:command ApiControllerMake

并扩展它

class ApiControllerMake extends ControllerMakeCommand

然后我从那里删除了所有内容并覆盖了方法

protected function getDefaultNamespace($rootNamespace)
    {
        return $rootNamespace.'\Http\AppAPI\Controllers';
    }

一切正常。 然后我覆盖了

protected $signature = 'make:api-controller';

及运行

之后

php artisan make:api-controller MyNewController

我收到错误

No arguments expected for "make:api-controller" command, got "MyNewController".

有什么问题?

看看ControllerMakeCommand,他们用

protected $name = 'make:controller';

你可能有这个:

protected $signature = 'make:api-controller';

因此,在您的新 class 中,将 $signature 替换为 $name