我想把artisan命令生成的控制器放在一个自定义目录中。我制作了自己的命令
php artisan make:command ApiControllerMake
并将其扩展为
class ApiControllerMake extends ControllerMakeCommand
然后我从那里删除了所有内容并覆盖了方法
protected function getDefaultNamespace($rootNamespace)
{
return $rootNamespace.'HttpAppAPIControllers';
}
它工作正常。然后我覆盖
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';
因此,在您的新类中,将$signature
替换为$name
。