有一个类似的问题问“how to create console command in a module?”,它包含了如何向Yii2模块添加命令的一个很好的答案。
但是,生成的命令必须采用以下格式:
./yii module_name/command/sub-command
其中command
对应控制台控制器名称,sub-command
对应其操作名称。
我们如何省略控制器名称并仅列出操作名称,以便我们的命令采用以下格式:
./yii module_name/command
答案 0 :(得分:1)
我不确定将控制台命令划分到模块以及隐藏控制器名称(例如将其设置为DefaultController)的目的是什么。
但无论如何,其中一个可能的解决方案是在controllerMap
文件中配置config\console.php
(考虑到您使用的是基本模板)。
$config = [
'id' => 'basic-console',
...
'controllerMap' => [
'module_name' => [
'class' => 'app\modules\module_name\commands\ConsoleController',
],
],
...
];
现在,当您运行php yii module_name/<action_name>
时,它会直接调用ConsoleController
次操作
..因此,php yii module_name/index
会导致module_name\ConsoleController->actionIndex()
方法