对于控制器名称Yii2的第一个和第二个字符使用大写字母

时间:2017-07-01 12:43:31

标签: php regex yii2 url-routing

我正在使用Yii2框架,基于某些标准,我必须自定义控制器名称。

如您所知,yii2中控制器名称的标准是这样的:

如果您将控制器命名为:DServicesController,则用于访问此控制器操作的漂亮网址中的路由为/d-services/[actionName]

但我想以一种我可以在url中访问它的方式命名我的控制器:

/DServices/[action name]

我将以下代码添加到urlManager rules但未起作用:

'urlManager' => [
    'rules' => [
        'manage/DServices/*' => 'manage/d-services/<action>'
     ],
]

如何命名我的控制器类或定义特定规则以便像这样访问它。

P.S:作为Yii2标准,控制器名称的第一个字母始终更改为小写。

1 个答案:

答案 0 :(得分:0)

实际上大写字母在Yii2路由规则中工作正常。但是我在你的片段中看到了两件奇怪的事情:

  1. 路线模板中的星号。你想以这种方式传递参数吗?
  2. 行动路线中的
  3. manage/前缀。如果您的控制器在manage模块中,它将起作用。
  4. 我尝试使用你的模板来解决这些问题:

    'urlManager' => [
        'rules' => [
            'manage/DServices' => 'd-services/<action>'
         ],
    ]
    

    它按预期工作。

    有关详细信息,请参阅Yii2文档的此部分:http://www.yiiframework.com/doc-2.0/guide-runtime-routing.html#routing