路由配置定义在protected/conf/config.inc.php
文件的$GLOBALS['rewrite']
全局变量。
$GLOBALS['rewrite'] = [
'404.html' => 'default/notFound',
'robots.txt' => 'default/robots',
];
对应的接收方法
// DefaultController
public function actionRobots($args) {
// code
}
支持<参数名>
,<参数名:正则表达式>
的写法
$GLOBALS['rewrite'] = [
'up_<upId:\d+>/<commentaryId:\d+>.html' => 'play/commentary',
];
对应的接收方法
// PlayController
public function actionCommentary($args) {
$rules = [
'commentaryId' => ['int', 'desc' => '解说id'],
'upId' => ['int', 'desc' => 'UP主id'],
];
Param::checkParam2($rules, $args);
}
url函数可以理解为路由的反向处理,通过给定控制器/方法
和对应的参数生成对应的url。
考虑到路由规则的修改,域名调整的问题,不建议硬编码url,而使用url函数生成。
以上面play/commentary
为例
url('play/commentary', ['upId' => 1, 'commentaryId' => 100]);
// output:
// http://HOST/up_1/100.html