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',
]
我想更改 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',
]