lu-you.md 1.2 KB

路由

路由配置定义在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,而使用url函数生成。

以上面play/commentary为例

url('play/commentary', ['upId' => 1, 'commentaryId' => 100]);
// output: 
// http://HOST/up_1/100.html