我正在使用Yii2
框架,基于某些标准,我必须自定义控制器名称。
如您所知,yii2中控制器名称的标准是这样的:
如果您将控制器命名为:DServicesController
,则用于访问此控制器操作的漂亮网址中的路由为/d-services/[actionName]
。
但我想以一种我可以在url中访问它的方式命名我的控制器:
/DServices/[action name]
我将以下代码添加到urlManager rules
但未起作用:
'urlManager' => [
'rules' => [
'manage/DServices/*' => 'manage/d-services/<action>'
],
]
如何命名我的控制器类或定义特定规则以便像这样访问它。
P.S:作为Yii2标准,控制器名称的第一个字母始终更改为小写。
答案 0 :(得分:0)
实际上大写字母在Yii2路由规则中工作正常。但是我在你的片段中看到了两件奇怪的事情:
manage/
前缀。如果您的控制器在manage
模块中,它将起作用。我尝试使用你的模板来解决这些问题:
'urlManager' => [
'rules' => [
'manage/DServices' => 'd-services/<action>'
],
]
它按预期工作。
有关详细信息,请参阅Yii2文档的此部分:http://www.yiiframework.com/doc-2.0/guide-runtime-routing.html#routing