yii2 定义路由规则的语法
Syntax for defining rules for routes in yii2
我正在使用 Yii2 的漂亮 urls 并且想玩转我的 UrlManager
中定义的规则,但没有找到任何关于如何在 [=13= 中定义变量的文档] 规则集。找到了一些例子,比如
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'enableStrictParsing' => false,
'rules' => [
"home" => "site/index",
"login" => "site/login",
"sign-up" => "site/sign-up",
'<controller:[\w-]+>/<id:\d+>' => '<controller>/view',
],
],
但是 :[\w-]+
或 :\d+
代表什么?
例如,如果我想定义一个指向需要两个参数的操作的模式怎么办
class MyController extends Controller{
...
public function actionMyAction($param1, $param2){
...
}
}
现在我希望我的网络用户在 url 栏中键入 www.mysite.com/my-controller/my-action/X-Y
,其中 X
是 $param1
的值,Y
是值$param2
并使用 -
作为参数分隔符。
谢谢。
[\w-]+和\d+是正则表达式,第一个表示任意字母或破折号,重复一次或多次,部分只表示数字,重复一次或多次
在规则表达式中,您使用 <variable name:regex>
为您的路由放置一个占位符,该占位符将解析为传递给您的控制器操作的变量。
如果 $param1 和 $param2 都是数字,规则应该如下所示。
'my-controller/my-action/<param1:\d+>-<param2:\d+>' => 'my-controller/my-action',
如果需要字母,请将 \d 换成 \w。
我正在使用 Yii2 的漂亮 urls 并且想玩转我的 UrlManager
中定义的规则,但没有找到任何关于如何在 [=13= 中定义变量的文档] 规则集。找到了一些例子,比如
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'enableStrictParsing' => false,
'rules' => [
"home" => "site/index",
"login" => "site/login",
"sign-up" => "site/sign-up",
'<controller:[\w-]+>/<id:\d+>' => '<controller>/view',
],
],
但是 :[\w-]+
或 :\d+
代表什么?
例如,如果我想定义一个指向需要两个参数的操作的模式怎么办
class MyController extends Controller{
...
public function actionMyAction($param1, $param2){
...
}
}
现在我希望我的网络用户在 url 栏中键入 www.mysite.com/my-controller/my-action/X-Y
,其中 X
是 $param1
的值,Y
是值$param2
并使用 -
作为参数分隔符。
谢谢。
[\w-]+和\d+是正则表达式,第一个表示任意字母或破折号,重复一次或多次,部分只表示数字,重复一次或多次
在规则表达式中,您使用 <variable name:regex>
为您的路由放置一个占位符,该占位符将解析为传递给您的控制器操作的变量。
如果 $param1 和 $param2 都是数字,规则应该如下所示。
'my-controller/my-action/<param1:\d+>-<param2:\d+>' => 'my-controller/my-action',
如果需要字母,请将 \d 换成 \w。