在使用Yii2框架开发应用时,并不都是一个单词就能表达清楚,如果需要使用一个以上的单词作为控制器名词和方法名称,那么访问的方法如下:
//假如有下面控制器类
class MyTestController
{
public function actionTestNewFunction {
//...
}
}
如果要访问这样的控制器里的方法,需要每个单词间用中划线相连,如下:
/my-test/test-new-function
如果开启了Url美化,则美化规则需要优化一下:
'urlManager' => [
'enablePrettyUrl' => true,
'enableStrictParsing' => true,
'showScriptName' => false,
'rules' => [
[
//没有优化前是这样的
//<module:\w+>/<controller:\w+>/<action:\w+>
'pattern' => '<module:[\w-]+>/<controller:[\w-]+>/<action:[\w-]+>',
'route' => '<module>/<controller>/<action>',
],
[
//没有优化前是这样的
//<controller:\w+>/<action:\w+>
'pattern' => '<controller:[\w-]+>/<action:[\w-]+>',
'route' => '<controller>/<action>',
]
]
],