Change/Rename URL 中的控制器名称:Yii2

Change/Rename Controller Name In URL: Yii2

我想更改 URL 中的控制器名称。其中,我们可以通过重命名模块中的控制器名称来完成。但是,如果我们可以的话,通过 URL 经理。会更好的。

模块:用户, 控制器: api, 操作:索引

现在,

'urlManager' => [
  'enablePrettyUrl' => true,
  'showScriptName' => false,
  'rules' => [
        '<controller:(api)>/<action:\w+>/<id:[a-z0-9]+>' => 'user/<controller>/<action>',
        '<controller:(api)>/<action>' => 'user/<controller>/<action>',
    ]
];

而且,我可以通过它访问它。

http://dev.example.com/api/index

但是,我想将其更改为

http://dev.example.com/world/index

我该怎么做?任何 help/hint/suggestion 都是可观的。

您可以通过将项目添加到规则数组来创建自定义 url 规则。

因此,在您的情况下,将其插入到规则数组中

'world/index' => 'api/index'

您可以阅读有关 URL 规则的更多信息 here

你也用ControllerMap

当您使用第三方控制器并且您无法控制它们的 class 名称时,它很有用。

以下组件中的代码提前 main.php 或基本 web.php 例如:

    'controllerMap' => [           
        'api' => 'app\controllers\WorldController',
                        ]